Я пытаюсь предотвратить прокрутку по умолчанию в веб-приложении, которое содержит элемент HTML5-видео в Mobile Safari.Обработка document.ontouchmove
и вызов e.preventDefault()
были стандартным способом, который я нашел для достижения этой цели.
Кажется, это работает везде, кроме тех случаев, когда вы касаетесь верхней части элемента видео, где вы можете начать тянутьстраница вокруг, как будто она собирается прокрутить.Кажется, что это происходит только тогда, когда встроенные элементы управления видео включены.Если вы не включите атрибут элементов управления и загрузите видео таким образом, чтобы его можно было воспроизвести в режиме реального времени (например, на iPad или в UIWebView с установленным параметром allowInlineMediaPlayback), прокрутка будет предотвращена надлежащим образом.Таким образом, похоже, что это как-то связано с нативными элементами управления видео (большая кнопка воспроизведения), фиксирующими событие.
Вот надуманный пример того, что я делаю:
<!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
непосредственно на элементе видео, и он не работает.
Спасибо!