在我的网站上,我希望用户无需离开页面即可观看嵌入的 YouTube 视频,但我不希望在点击之前看到不那么风格化的 YouTube 嵌入内容。
这在桌面上完全可行,因为您可以使用 YouTube JavaScript API 来触发嵌入播放,但在 iOS 上,播放器的编程触发播放被阻止。那么我怎样才能在 iOS 上做到这一点呢?
最佳答案
在考虑这个问题时,我认为一种替代方法是有一个不透明且有样式的图层,但您可以单击它。这意味着用户认为他们点击了一个漂亮的按钮,而实际上他们只是点击嵌入来播放。
事实证明有一种方法可以做到这一点,那就是使用奇特的(非官方)CSS pointer-events
属性!将其设置为 none
意味着不会记录点击,而是直接穿过元素到达其后面的任何内容。在本例中,YouTube 嵌入了 iframe。支持 iOS 6+。
这是一个JSFiddle它的工作原理。
请注意,这是针对 iOS(也可能是 Android)的 - 它利用了视频开始播放时自动全屏显示的行为。如果您在桌面上观看此内容,覆盖层仍然是..覆盖的。
还需要进行一些改进才能使其变得更漂亮:
- 处理初始点击并更改用户界面,以便他们立即知道视频正在开始。也许隐藏覆盖层、淡化它或将其更改为仅表示“正在加载...”
- 完成后,通过重新创建 iframe 来重置视频
你可以用这种技术做一些棘手的事情,例如有一个小播放器 iframe,上面覆盖着一个小按钮。仍然会全屏显示,所以它会正常工作。
但无论如何,这就是在 iOS 上播放 YouTube 视频而用户不知道他们点击了嵌入的概念证明。
关于ios - 如何通过单击播放按钮而不是嵌入来触发 YouTube 视频在 iOS 上的浏览器中播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110875/