Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止移动设备上的水平滚动(HTML/CSS/JS)_Javascript_Android_Jquery_Html_Css - Fatal编程技术网

Javascript 防止移动设备上的水平滚动(HTML/CSS/JS)

Javascript 防止移动设备上的水平滚动(HTML/CSS/JS),javascript,android,jquery,html,css,Javascript,Android,Jquery,Html,Css,我正在做最后的润色,但我在防止一些非常不吸引人的水平滚动效果方面遇到了问题(直接向左拖动,自己在触摸设备上尝试一下) 我采用了使用3D CSS变换描述的视差技术。不幸的是,一个副作用似乎是浏览器认为图像比视口宽,即使它们不是。我已经试过了: 添加溢出-x:隐藏到包含div的视差图像,虽然它隐藏了水平滚动条,但实际上它本身并不能阻止水平滚动 添加一个部分解决方法scroll事件侦听器,以便在每次滚动时将容器的scrollLeft重置为0,这可以完全在桌面(AFAICT)上解决问题,部分在移动设备

我正在做最后的润色,但我在防止一些非常不吸引人的水平滚动效果方面遇到了问题(直接向左拖动,自己在触摸设备上尝试一下)

我采用了使用3D CSS变换描述的视差技术。不幸的是,一个副作用似乎是浏览器认为图像比视口宽,即使它们不是。我已经试过了:

  • 添加
    溢出-x:隐藏到包含div的视差图像,虽然它隐藏了水平滚动条,但实际上它本身并不能阻止水平滚动
  • 添加一个部分解决方法
    scroll
    事件侦听器,以便在每次滚动时将容器的
    scrollLeft
    重置为0,这可以完全在桌面(AFAICT)上解决问题,部分在移动设备上解决问题(至少在对角滚动时)
不幸的是,至少在安卓系统上(我没有iPhone要测试),它仍然可以水平滚动而不触发
scroll
事件解决方法。更令人不解的是,在这种奇怪的水平滚动模式下,我通过编程遍历了整个DOM,没有一个元素具有
scrollLeft
属性
!=0
。我还调用了
$('*')从控制台,它不会重置滚动。现在,对所有
touchmove
事件调用
.preventDefault()
,确实会阻止水平滚动,但它也会有效地破坏整个站点,因为它也会阻止垂直滚动,所以这是不可能的

那么,如果除了
0
之外没有任何东西具有
scrollLeft
,那么这个东西是如何水平滚动的?我如何防止/解决这种滚动行为?