video標籤踩坑小記
阿新 • • 發佈:2019-02-01
使用video標籤實現簡單的視訊展示,關鍵點是封面的設定和視訊在當前區域的播放,自定義封面圖和播放按鈕,覆蓋在原生視訊標籤的上面。最終實現的效果如下圖所示:
踩坑小記:
- 問題:視訊封面在個別瀏覽器顯示不全
解決:不使用video標籤預設的poster屬性,自定義封面和播放按鈕。 - 問題:視訊在微信瀏覽器點選全屏播放,不能在當前區域播放
解決:通過設定x5-playsinline="true"實現x5核心的相容。
最終實現程式碼如下:
<style>
.video-cover-box{
position: absolute;
left : 0;
top: 0;
width: 100%;
height: 280px;
}
.video-box{
position: relative;
width: 100%;
height: 280px;
}
.jkj-video{
width: 100%;
height: 100%;
object-fit: fill;
}
.jkj-video-cover{ /*視訊封面圖*/
width: 100%;
height: 280px;
background:transparent url('img/video_cover.jpg') 100% 100% no-repeat;
-webkit-background-size:cover;
-moz-background-size:cover;
-o-background-size:cover;
background-size :cover;
}
.video-play-icon{ /*視訊播放按鈕*/
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 70px;
height: 70px;
background: url('img/play.png') no-repeat;
background-size: 100% 100%;
}
</style>
<div class="video-box">
<!-- 視訊部分 -->
<video width="100%" height="100%" class="jkj-video" preload="auto" webkit-playsinline="true" playsinline="" x5-playsinline="true"
x-webkit-airplay="true" preload="auto" x5-video-orientation="portraint" id="jkjVideo">
<source src="jkj.mp4" type="video/mp4" />
</video>
<!-- 封面部分 -->
<div class="video-cover-box">
<div class="jkj-video-cover"></div>
<div class="video-play-icon"></div>
</div>
</div>
// 點選video封面消失,播放視訊
$('.video-cover-box').click(function () {
$(this).hide();
document.getElementById('jkjVideo').play();
})