用于触摸屏的带有图像回退的背景视频

Background video with image fallback for touchscreens

This is the website.

背景视频适用于桌面。对于小屏幕,显示的是图像(为此我使用 CSS 显示 属性)。但是像 iPad 这样不小的触摸屏呢?

我试过这段代码:

<video id="background" width="100%" height="100%" muted autoplay loop>
    <source src="videos/video.mp4" type="video/mp4">
    <source src="videos/video.ogg" type="video/ogg">
    <img src="img/image.jpg">
    Your browser does not support the video tag.
</video>

我添加了备用图像以防 browser/device 无法识别该视频。但我认为触摸屏并非如此。我猜他们确实认出了视频,只是没有自动播放而已。

如何在不播放背景视频的设备上显示背景图片?

感谢任何帮助。

看起来您已经在使用 Modernizr.js - 您可以使用它来检测触摸事件支持,然后做出相应的响应。 要通过 css 定位,请使用 Modernizr 选择性应用于 html 元素的 类。

.touch video { ... } .no-touch video { ... }

通过 js 定位:

if (Modernizr.touch) { ... } if (!Modernizr.touch) { ... }

如果您愿意,还有一些很好的库可以帮助管理背景视频 - 查看 Unheap 上的媒体部分以获得大量选项。

此外,我对使用自动播放的背景视频持谨慎态度。它们看起来很酷,当然,但它们会在性能、可访问性、加载时间等方面造成一些问题。

我来晚了一点。

Modernizr 方法可能最适合检测触摸屏,但您似乎并不真正关心设备是否触摸。您想要定位小屏幕设备,其中大部分恰好是触摸屏。但是,有桌面触摸屏,因此触摸检测对于小型设备来说不是很准确。

您可以使用 media queries.

非常轻松地定位小屏幕,触摸或不触摸
@media (max-width: 600px) {
    #myvideo {
         display: none;
    }
}