我試圖阻止在移動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