1. 程式人生 > >video標籤踩坑小記

video標籤踩坑小記

使用video標籤實現簡單的視訊展示,關鍵點是封面的設定和視訊在當前區域的播放,自定義封面圖和播放按鈕,覆蓋在原生視訊標籤的上面。最終實現的效果如下圖所示:
video

踩坑小記:

  1. 問題:視訊封面在個別瀏覽器顯示不全
    解決:不使用video標籤預設的poster屬性,自定義封面和播放按鈕。
  2. 問題:視訊在微信瀏覽器點選全屏播放,不能在當前區域播放
    解決:通過設定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();
})