1.定位使用 scroll-into-view 的属性,可以滑动到tab中的指定 item 位置。重点是: scroll-into-view
的值保持和id
里面的值相等,及定位就可以找到
<scroll-view scroll-into-view="{{'item'+tabid}}" scroll-x="true" class="tab-h" scroll-left="{{scrollLeft}}" scroll-with-animation="true">
<block wx:for="{{statelistTwo}}" wx:key="item">
<view id="{{'item'+index}}" data-id="{{index}}" class="state-item2 {{item.selectedclass}}">{{item.name}}</view>
</block>
</scroll-view>
注意:'item'+tabid
就是要滚动到的元素的位置,但是有几个地方需要注意,否则没有效果
(1) scroll-into-view的值必须是动态的,通过setData设置后,重新渲染才会有效。如果是静态的,如scroll-into-view="item2"
,则无效。
(2) scroll-view 必须有固定的高度,如果设置高度为百分比的话,父容器一定要固定高度,否则无效。比如最顶层的 view 没有设置固定高度,然后在下面添加的 scroll-view 的高度就直接设置height:100%
是无效的,此时可以设置为height:100vh
代替。
2.平滑滑动
scroll-with-animation
在设置滚动条滚动时是否使用过渡动画,可以看到上述代码中我已使用这个属性。