在移动设备上禁用站点主体的触摸平移
Disable touch panning for body of site on mobile devices
我正在工作的网站www.salonbkb.com当在移动浏览器将采取响应,但将允许用户使用触摸移动网站从左到右创建一个空白后的剩余空间拖动。
foundationzurb.com没有这样做,我找到的大多数网站也没有。我相信msn.com现在还在这么做。
我怎样才能防止这种情况的发生。
我试着
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
但这没有任何作用。
如果您有width=device-width, initial-scale=1
,页面通常不会这样做。某些元素正在拉伸页面,允许用户横向移动。如果你在100%宽度的元素上有边距,或者如果box-sizing
没有设置为border-box
,并且在100%宽度的元素上有填充,则会经常发生这种情况。你只需要找到元素(chrome devtools对此很有用,继续向下滚动并尝试找到一个大边框突出的元素)并修改或删除它。
user-scalable=no
或maximum-scale=1
。这对可用性来说很糟糕。用户应该能够放大。这方面几乎没有好的用例。如果您担心点击延迟,请使用快捷键。
您可以使用javascript禁用浏览器的默认操作(如页面拖动)。
document.addEventListener("touchmove",function(event){event.preventDefault();});
但是,这也会阻止用户向下滚动。为了防止只侧向移动,你必须添加检查触摸方向的条件…
document.addEventListener("touchmove",function(event){
if(//check if the absolute value
of last touch.x -current touch.x
is greater than some threshhold){
event.preventDefault();
}
});
相关文章:
- 触摸移动时切换到新元素
- 主体上的addEventListener('mousemove',..)-有多糟糕
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- iOS 中的按钮触摸状态
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何使用纯javascript的移动触摸事件
- 主体单击删除功能上的输入框宽度
- 如何在AngularJS应用程序的主体上动态设置溢出
- 如何使用javascript检测触摸设备浏览器与桌面
- 触摸启动事件未在iframe iOS 6中启动
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- Sencha触摸:工具栏无法正常滚动
- 在可触摸的高光上添加compnant
- 提高$(..)的响应能力.点击触摸界面
- Chrome 50的Android WebView在触摸页面之前会阻止Javascript
- 触摸滑动所有事件
- IE(移动设备)在触摸时不显示子项
- 提取没有特定子元素的主体元素
- 在移动设备上禁用站点主体的触摸平移