Javascript 防止移动设备上的水平滚动(HTML/CSS/JS)
我正在做最后的润色,但我在防止一些非常不吸引人的水平滚动效果方面遇到了问题(直接向左拖动,自己在触摸设备上尝试一下) 我采用了使用3D CSS变换描述的视差技术。不幸的是,一个副作用似乎是浏览器认为图像比视口宽,即使它们不是。我已经试过了:Javascript 防止移动设备上的水平滚动(HTML/CSS/JS),javascript,android,jquery,html,css,Javascript,Android,Jquery,Html,Css,我正在做最后的润色,但我在防止一些非常不吸引人的水平滚动效果方面遇到了问题(直接向左拖动,自己在触摸设备上尝试一下) 我采用了使用3D CSS变换描述的视差技术。不幸的是,一个副作用似乎是浏览器认为图像比视口宽,即使它们不是。我已经试过了: 添加溢出-x:隐藏到包含div的视差图像,虽然它隐藏了水平滚动条,但实际上它本身并不能阻止水平滚动 添加一个部分解决方法scroll事件侦听器,以便在每次滚动时将容器的scrollLeft重置为0,这可以完全在桌面(AFAICT)上解决问题,部分在移动设备
- 添加
溢出-x:隐藏编码>到包含div的视差图像,虽然它隐藏了水平滚动条,但实际上它本身并不能阻止水平滚动
- 添加一个部分解决方法
事件侦听器,以便在每次滚动时将容器的scroll
重置为0,这可以完全在桌面(AFAICT)上解决问题,部分在移动设备上解决问题(至少在对角滚动时)scrollLeft
scroll
事件解决方法。更令人不解的是,在这种奇怪的水平滚动模式下,我通过编程遍历了整个DOM,没有一个元素具有scrollLeft
属性!=0
。我还调用了$('*')代码>从控制台,它不会重置滚动。现在,对所有touchmove
事件调用.preventDefault()
,确实会阻止水平滚动,但它也会有效地破坏整个站点,因为它也会阻止垂直滚动,所以这是不可能的
那么,如果除了0
之外没有任何东西具有scrollLeft
,那么这个东西是如何水平滚动的?我如何防止/解决这种滚动行为?