Skrollr 页面上的移动导航栏水平滚动
Mobile navbar horizontal scroll on Skrollr page
我的移动导航栏位置固定在屏幕底部并向右溢出。我希望能够水平滚动,但是,skrollr 似乎正在捕获滚动事件并将其转换为垂直滚动。
禁用 skrollr 后,我可以水平滚动导航栏。
我尝试将导航栏的 zindex 调得尽可能高,但 skrollr 仍然会触摸它。
这可能吗?
编辑:
想上传我想要实现的目标的草图以使其更清楚。
叠加层是位置固定的,位于屏幕底部,z 索引在所有内容之上,其内容向右溢出:
white-space: nowrap; overflow-x: auto; overflow-y: hidden;
在移动设备上,拖动叠加层会开始滚动整个页面,并且叠加层不会左右滚动。如果我使用鼠标水平滚轮,它会滚动,但不会在触摸时滚动。
设法通过在覆盖元素上停止对 touchmove
、touchstart
和 touchend
事件的传播来解决此问题:
$overlay.on('touchmove touchstart touchend', function(e) {
e.stopPropagation();
});
这破坏了点击叠加层内的任何链接,但向它们添加虚拟侦听器修复了它:
$overlayLinks.on('touchmove touchstart touchend', function() {
return true;
});
我的移动导航栏位置固定在屏幕底部并向右溢出。我希望能够水平滚动,但是,skrollr 似乎正在捕获滚动事件并将其转换为垂直滚动。
禁用 skrollr 后,我可以水平滚动导航栏。
我尝试将导航栏的 zindex 调得尽可能高,但 skrollr 仍然会触摸它。
这可能吗?
编辑:
想上传我想要实现的目标的草图以使其更清楚。
叠加层是位置固定的,位于屏幕底部,z 索引在所有内容之上,其内容向右溢出:
white-space: nowrap; overflow-x: auto; overflow-y: hidden;
在移动设备上,拖动叠加层会开始滚动整个页面,并且叠加层不会左右滚动。如果我使用鼠标水平滚轮,它会滚动,但不会在触摸时滚动。
设法通过在覆盖元素上停止对 touchmove
、touchstart
和 touchend
事件的传播来解决此问题:
$overlay.on('touchmove touchstart touchend', function(e) {
e.stopPropagation();
});
这破坏了点击叠加层内的任何链接,但向它们添加虚拟侦听器修复了它:
$overlayLinks.on('touchmove touchstart touchend', function() {
return true;
});