chjtx / JRoll

Smooth scrolling for the mobile web
http://www.chjtx.com/JRoll/
MIT License
460 stars 92 forks source link

JRoll不能滚动 #32

Closed hyy1115 closed 7 years ago

hyy1115 commented 7 years ago

我在react的componentDidMount()做new JRoll()处理,第一次加载列表的时候,可以触摸滚动。 但是,当我跳转到其他页面再返回来的时候,触摸滑动就无效了,我打印了new JRoll,显示已经实例化成功,并没有任何错误提示。 我想知道触摸滚动是如何触发?

hyy1115 commented 7 years ago

但是当我继续往列表动态增加li的时候,就会触发滚动事件。

chjtx commented 7 years ago

我不会React,我猜可能的原因是从其他页面回来的时候React将原来的div#scroller换成了新建的div。 如果可以在Runjs建个demo演示问题就更好了。

触摸滚动的机制大概这样:

所以如果div#scroller被偷换了,就找不到与之关联的JRoll对象。JRoll对象绑定在div#scroller的jroll属性上,可以这样获取:

document.getElementById('scroller').jroll

至于为什么动态增加li会触发滚动事件就要看具体代码了,猜我是没法猜出来的

hyy1115 commented 7 years ago

ok,这个问题已经解决了,感觉是比iscroll流畅一些,平滑度上还是有些不足,好处就是iscroll和JRoll可以无缝切换使用。

dreaminglwj commented 7 years ago

@hyy1115 我们开一个新的分支做一个功能完善的如何?

hyy1115 commented 7 years ago

@dreaminglwj 我尝试封装成react组件,你还想要完善什么功能?

dreaminglwj commented 7 years ago

挺多的,比如当列表填不满一页的时候页面乱掉,当加载数据不满一页的时候页面计数不按实际数量增加。再比如用作为嵌入页面的一个部分使用的时候,不能正常滑动页面的问题。

dreaminglwj commented 7 years ago

@hyy1115

hyy1115 commented 7 years ago

@dreaminglwj 滚动应该和ul下面的列表个数无关,只需要确定wrapper的高度、宽度,在这个容器内,有一个scroller属性,就能正常显示和滚动了。 页面乱掉的情况我没发现,计数不了解,我现在就是把JRoll嵌入页面的一部分使用,除了滑动没那么平滑之外,没有过于明显的滑动卡顿问题。

dreaminglwj commented 7 years ago

@hyy1115 了解,我在花点时间研究一下,谢谢指点