【问题标题】:video touchevent doesn't trigger on iOS safari when playing fullscreen播放全屏时,视频触摸事件不会在 iOS Safari 上触发
【发布时间】:2020-02-24 07:45:24
【问题描述】:

在 iPad Safari 上,iOS 版本 13.1.3

我尝试使用 vanilla js 将触摸事件侦听器添加到视频元素。该事件通常在非全屏模式下触发。但是一旦我将模式更改为全屏,我就无法再触发触摸事件了。

我还在 safari 的网络检查器中收到以下控制台错误。

我发现 video.js 等视频播放器框架可以防止这个问题。但我想知道为什么会发生这种情况以及如何使用 vanilla js 解决它?

<body>
    <video controls width="720" src="https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4">
    </video>
</body>

<script type="text/javascript">
    video = document.querySelector("video");
    console.log(video);
    video.addEventListener('touchstart', (e) => {
        console.log('touched');
    })
</script>

【问题讨论】:

    标签: javascript ios html5-video mobile-safari html5-fullscreen


    【解决方案1】:

    这是因为原生视频控件干扰了触摸事件。您无需传递controls 选项。

    见:

    Touch events are not triggered on video tags on safari for iPhone

    iPad touch events on <video> tag

    您可以通过以下方式实现自己的控件:

    https://www.adobe.com/devnet/archive/html5/articles/html5-multimedia-pt3.html

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 2017-04-12
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多