在IScroll中输入IScroll:阻止父级滚动

时间:2016-10-06 11:02:29

标签: javascript scroll nested iscroll stoppropagation

我在IScroll的另一个div内有一个div IScroll。每当我尝试在孩子div上滚动时,父母也会滚动,所以这是一种糟糕的用户体验。

我不想得到每个变量并告诉它暂时禁用它,例如在this other question中,因为它们是动态内容而滚动条是在类中创建的 - 所以没有全局变量存储滚轮。

我已访问this question,但每当我尝试抓住event时,它就是undefined,因此会引发错误。似乎IScroll 5没有将事件发送给处理程序,因此我无法编写event.stopPropagation(),因为它什么也没做。

我已经尝试过IScroll提供的所有事件,甚至我已经尝试切换回iScroll 4并尝试onBeforeScrollStart等等,也没有运气。

解决方案应该可以在启用触摸的设备上工作,还可以使用鼠标交互(拖动)和鼠标滚轮

有可能吗?如果是这样,我可以这样做父卷轴停止滚动如果它是正在进行滚动操作的孩子?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用JRoll,它有一个方法callcall可以切换当前的滚动实例。在div内部切换到外部div,您不使用e.preventDefaulte.stopProgapation。这里有一个演示http://www.chjtx.com/JRoll/demos/5.html

建议你试试JRoll,它的call方法可以不使用e.preventDefaulte.stopProgapation就能切换滑动实例,从内div切换到外{{1 }}请看实例:http://www.chjtx.com/JRoll/demos/5.html