我试图阻止在移动Safari上包含HTML5视频元素的Web应用程序中的默认滚动。处理document.ontouchmove
并致电e.preventDefault()
是我发现实现这一目标的标准方式。防止在HTML5上滚动<video> iOS上的元素
除非您触摸视频元素顶部,您可以在其中开始全方位拉动页面,就好像它要滚动一样,这似乎适用于任何地方。这只会在本机视频控制强制开启时发生。如果您不包含控件属性并以可以在线播放的方式加载视频(例如在iPad上或在设置了allowInlineMediaPlayback的UIWebView中),则可以正确防止滚动。因此,它似乎与捕捉事件的本地视频控件(大型播放按钮)有关。
下面是我在做什么一个人为的例子:
<!DOCTYPE HTML>
<html>
<head>
<title>HTML5 Video Example</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
</head>
<body style="background: blue;">
<video src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb_trailer_iphone.m4v" controls></video>
<script>
window.onload = function() {
document.ontouchmove = function(e) {
e.preventDefault();
}
}
</script>
</body>
</html>
变通的任何想法完全禁止滚动行为,甚至在视频?我已经尝试直接在视频元素上处理ontouchmove
,它不起作用。
谢谢!
面临相同的情况,你有没有找到任何解决方法? – 2012-10-12 11:49:05