gpt4 book ai didi

iphone - 如何阻止 HTML5 视频元素通过 iPhone 或 iPod Touch 上的图层注册触摸?

转载 作者:行者123 更新时间:2023-12-03 20:07:56 25 4
gpt4 key购买 nike

当我从头开始一个新的 HTML5 视频播放器项目时,我发现了这种不寻常且有些烦人的行为。

我有一个非常基本的网页,带有以下标签:

<div style="position: relative;">
<video id="vid" src="someVideo.mp4" width="960" height="540"></video>
<div style="position: absolute; top: 0; left: 0; width: 960px; height: 540px; background-color: red;"></div>
</div>

它按预期显示 - VIDEO 元素隐藏在具有相同精确尺寸的红色大矩形后面。

然而,出乎我的意料,我可以触摸 iPhone 或 iPod Touch 上每个 HTML5 视频中心出现的播放“覆盖”周围的红色矩形的中心区域,以启动 VIDEO 元素播放时就好像我触摸了 VIDEO 元素本身。

有什么办法可以阻止这种行为吗?它不会出现在 iPad 或桌面上,但出于同样的原因,叠加层也不会出现在页面上带有原始 VIDEO 标签的这些平台上。

更新:它似乎甚至阻止了直接位于其上方的任何物体的触摸事件。如果我尝试将事件监听器附加到绝对定位的红色 DIV,则关联的事件处理程序将不会执行。这确实很烦人。

更新: @Matt H - 这是一个在 iOS 的 Safari 中运行的“网络应用程序”。通过严格的测试,我得出的结论是,在 iPhone 或 iPod Touch 上,物理页面上 VIDEO 元素“驻留”的区域本质上是为该元素保留的,只要它实际上可见,就事件而言。当然,问题是,如果未显示 VIDEO 元素,则无法通过触摸覆盖元素来链接播放方法调用。这很糟糕,但我认为这是苹果公司为防止恶意编码者“欺骗”用户播放视频而做出的努力的一部分,就像“禁止自动播放”规则一样。

最佳答案

您是否尝试过处理并取消触摸事件?

<body ontouchstart='return HandleTouch(event)'>
function HandleTouch(ev) {ev.preventDefault(); }

不过,我不确定这是否有效。

关于iphone - 如何阻止 HTML5 视频元素通过 iPhone 或 iPod Touch 上的图层注册触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com