我正在对this parallax website进行最后润色,但我无法防止一些非常不吸引人的水平滚动效果(通过直接向左拖动在触摸设备上尝试自己)。
我使用3D CSS变换改编了here描述的视差技术。不幸的是,其中一个副作用似乎是浏览器认为图像比视口宽,即使它们不是。我已经尝试过了:
overflow-x: hidden;
添加到包含div的视差图像中,虽然隐藏了水平滚动条,但它实际上并不会阻止水平滚动。scroll
事件侦听器,以使用每个滚动将容器的scrollLeft
重置为0,这完全解决了桌面(AFAICT)上的问题,部分解决了移动问题(至少在对角滚动)。不幸的是,似乎至少在Android上(我没有要测试iPhone),它仍然可以水平滚动而不会触发scroll
事件解决方法。更奇怪的是,虽然它处于这种奇怪的水平滚动模式,但我以编程方式遍历整个DOM而不是单个元素具有scrollLeft
属性!= 0
。我还从控制台调用$('*').scrollLeft(0);
,它不会重置滚动。现在在所有.preventDefault()
事件上调用touchmove
会阻止水平滚动,但它也会有效地打破整个网站,因为它也会阻止垂直滚动 - 所以这是一个不-go。
那么如果除了scrollLeft
之外没有0
,那么这个东西如何水平滚动?如何阻止/解决这种滚动行为?