<viewclass="page"> <viewclass="page__bd"> <viewclass="section"> <viewclass="section__title">vertical scroll</view> <buttonbindtap="reset"></button> <scroll-viewscroll-y="{{true}}"style="height: 200px;"bindscrolltoupper="upper"bindscrolltolower="lower"bindscroll="scroller"scroll-into-view="{{toView}}"scroll-top="{{scrollTop}}"> <viewid="green"class="scroll-view-item bc_green"></view> <viewid="red"class="scroll-view-item bc_red"></view> <viewid="yellow"class="scroll-view-item bc_yellow"></view> <viewid="blue"class="scroll-view-item bc_blue"></view> </scroll-view> <viewclass="btn-area"> <buttonsize="mini"bindtap="tap">click me to scroll into view</button> <buttonsize="mini"bindtap="tapMove">click me to scroll</button> <buttonsize="mini"bindtap="scrollToTop">click me to top:{{scrollTop}}</button> </view> </view>
<viewclass="section section_gap"> <viewclass="section__title">horizontal scroll</view> <scroll-viewclass="scroll-view_H"scroll-x="{{true}}"style="width: 100%"scroll-left="{{scrollLeft}}"> <viewid="green"class="scroll-view-item_H bc_green"></view> <viewid="red"class="scroll-view-item_H bc_red"></view> <viewid="yellow"class="scroll-view-item_H bc_yellow"></view> <viewid="blue"class="scroll-view-item_H bc_blue"></view> </scroll-view> <viewclass="btn-area"> <buttonsize="mini"bindtap="tap2">click me to scroll into view</button> <buttonsize="mini"bindtap="tapMove2">click me to scroll</button> <buttonsize="mini"bindtap="scrollToLeft">click me to left:{{scrollLeft}}</button> </view> </view> </view> </view>
JS
var order = ['green', 'red', 'yellow', 'blue', 'green'] Page({ data: { toView: "green", s: 20, scrollLeft: 100, scrollTop: 0 }, tap1: function () { var i = this.data.s += 20 }, upper: function (e) { console.log(e); }, lower: function (e) { console.log(e); }, scroller: function (e) { console.log(e); }, scrollToTop: function (e) { this.setData({ scrollTop: 0 }) }, scrollToLeft: function (e) { this.setData({ scrollLeft: 0 }) }, tap: function (e) { for (var i = 0; i < order.length; ++i) { if (order[i] === this.data.toView) { this.setData({ toView: order[i + 1], scrollTop: (i + 1) * 200 }) break } } }, tap2: function (e) { for (var i = 0; i < order.length; ++i) { if (order[i] === this.data.toView) { this.setData({ toView: order[i + 1], scrollLeft: (i + 1) * 200 }) break } } }, tapMove: function (e) { this.setData({ scrollTop: this.data.scrollTop + 10 }) }, tapMove2: function (e) { this.setData({ scrollLeft: this.data.scrollLeft + 10 }) } })