赞
踩
<header class="header" style="width:100%;position: relative;">
<?php if(!Helper::isMobile()) { ?>
<video id="homeVideo" class="home-video" autoplay loop muted poster="res/video/cover.jpg">
<source src="res/video/home_video.mp4" type="video/mp4">
</video>
<?php } ?>
</header>
其中php简单判断了一下是否是移动设备, 移动设备不展示视频(如果移动端展示的话, 需要解决iOS上无法自动播放的问题):
ps: 如果H5页面主要在微信浏览器中访问,可以解决iOS上视频自动播放的问题:解决iOS h5 audio自动播放(亲测有效)
class Helper {
public static function isMobile() {
if (preg_match("/(iPhone|iPod|Android|ios|iPad)/i", $_SERVER['HTTP_USER_AGENT'])) {
return true;
} else {
return false;
}
}
}
为了让视频占满整个屏幕, 关键在于video标签样式的设置:
.home-video { z-index: 100; position: absolute; top: 50%; left: 50%; min-width: 100%; min-height: 100%; object-fit: fill;/*这里是关键*/ width: auto; height: auto; -ms-transform: translateX(-50%) translateY(-50%); -webkit-transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%); background: url(../video/cover.jpg) no-repeat; background-size: cover; }
$('.home-video').height(window.innerHeight);
$('.header').height(window.innerHeight);
$(window).resize(function() {
$('.home-video').attr('height', window.innerHeight);
$('.home-video').attr('width', window.innerWidth);
$('.header').height(window.innerHeight);
});
document.getElementById('homeVideo').play();
值得注意的是,video标签必须加muted
属性(静音播放),否则在Chrome浏览器下调用play()
会报错:
DOMException: play() failed because the user didn't interact with the document first.
这是因为从Chrome从66版本开始,为了避免打扰用户,自动播放时,必须是静音播放。
能不能绕过这个限制呢?不妨试试效果:
document.getElementById('homeVideo').play();
//在play之后加一个延时,清除video的muted属性
setTimeout(function(){
document.getElementById('homeVideo').removeAttribute('muted');
}, 100);
官网成品请参考:www.jixiangma.cn
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。