chjtx / JRoll

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

可以scrollstart时就知道滚动方向并且能控制阻止后面的滚动么 #58

Closed ben-lau closed 5 years ago

ben-lau commented 6 years ago

因为有需求是想内层左右滚动是允许的 内层在上下滚动时有时是触发给外层 那就需要在滚动发生前有个事件给我捕捉到并且能让我阻止后面的滚动

ben-lau commented 6 years ago

就是说scrollstart感觉这事件不太准确 这事件是不带方向的应该只是touchestart而已 scrollStart应该触发时机在于滚动方向已经获取并且做好所有计算 但未调用你内部的doScroll前 而且应该有方法阻止这次scroll的发生并能把这次scroll事件转移

chjtx commented 6 years ago

可以这样解决:在内层的scrollStart时记录一个变量,变量保存内层的x值,在scroll事件对比变量和当前的x值,如果变量和x值相等,表示是上下滑动,立即用call方法调用外层

ben-lau commented 6 years ago

这个当然试过 但是会有个问题就是内层会滚动一小段距离才把事件call到外层 并没有停止第一次scroll事件时的滚动

chjtx commented 6 years ago

这个方法是可以的,你在http://runjs.cn/建个demo看看,是不是你判断的逻辑不对

ben-lau commented 6 years ago

逻辑应该没问题的- -用了你的插件那么久了 在scroll事件即使是call外层 内层也是会执行第一个scroll的