使用iscroll,无法正常滑动的原因

时间:2023-03-09 18:30:30
使用iscroll,无法正常滑动的原因

iscroll的dom元素的结构是固定的,swiper是容器,scroll是需要滚动的容器,list是滚动的内容

<div class="swiper">
<div class="scroll">
<div class="list"></div>
</div>
</div>

tips:

1、swiper定位必须为relative,并且高度设置固定值,overflow:hidden;

2、swiper的高度一定要小于scroll的高度

3、初始化uiscroll时,元素必须是显示的状态,

4、如果底部还是无法拉上去,查看list中的每个item之间是否有padding,margin(如果是上下滑动,则查看上下),取消padding和margin

5、scroll 是你想要在多大的容器里滚动,list是真正要滚动的内容,所以scrollbar 设置为list

6、使用scroll 上下滚动到指定高度的时候,使用scrollTo,要判断最大的滚动距离maxScrollY,如果超出这个距离,会先滚到这个位置后再返回回去。

我的案例,页面中有个div容器,里面设置了两个tab,点击相互切换。div容器设置为隐藏,当点击页面中的某个按钮时,显示该div。我在页面渲染完成后,就初始化了iscroll,但是发现div滑动不了(只要一放手就回弹到初始位置)。

滚动不了的原因:初始化iscroll时,div是隐藏的状态,修改初始化的时机,当div显示后在初始化。

修改后,只有第一个tab,可以正常滑动,第二个依然无法正常滑动,原因同上,div显示时,只有第一个tab是显示的状态,所以在点击第二个tab时,需要再次初始化一次。