我正在开发一个基于浏览器的应用程序,目前我正在为ipad safari浏览器开发和设计样式.
我在ipad上寻找两件事:如何禁用不需要它的页面的垂直滚动?如何禁用弹性反弹效果?
当用户点击页面边缘时,我不希望我的网站内容晃动.我只想让它停下来.
我到处看到的全方位javascript解决方案是这样的:
$(document).bind(
'touchmove',
function(e) {
e.preventDefault();
}
);
Run Code Online (Sandbox Code Playgroud)
但这可以完全阻止滚动.有没有办法去除反弹.最好使用CSS或元标记而不是JS,但任何有效的方法都可以.
我正在编写一个HTML和JavaScript的Web应用程序,以便在iPhone上使用.我想要实现的是阻止应用程序进行弹性滚动(滚动浏览页面范围并弹回).但是,我需要我的应用程序的一些较长元素才能滚动(应用程序有一个长画布).
我已尝试过在互联网上其他地方找到的许多答案,但是,所有这些解决方案要么使用JQuery,要么完全禁用滚动,使用Phonegap或者只是简单地在IOS 7上工作.我怎么能这样做?
从现在开始,我一直在使用这项preventDefault
技术touchmove
,当时我注意到它在iOS 11.3上似乎不再适用,既不适用于Safari,也不适用于Chrome或Firefox:
document.ontouchmove = function(event){
event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
iOS现在有什么变化吗?阻止页面顶部或末尾弹跳的方法是什么?
视频在这里:
我想阻止滚动页面"从iPhone屏幕外"(当页面边框后面的灰色Safari的背景可见时).要做到这一点,我正在取消touchmove事件:
// Disables scrolling the page out of the screen.
function DisableTouchScrolling()
{
document.addEventListener("touchmove", function TouchHandler(e) { e.preventDefault(); }, true);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这也禁用了mousemove事件:当我点击一个按钮然后将我的手指移出它,然后释放屏幕,无论如何都会触发按钮的onclick事件.
我已经尝试在鼠标事件上映射触摸事件,如下所示:http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/ ,但无效(相同的行为) ).
有任何想法吗?