<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式

        來源:懂視網 責編:小采 時間:2020-11-27 22:21:18
        文檔

        基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式

        基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式:本文講述如何實現擁有酷炫背景視頻的登錄頁面,瀏覽器窗口隨意拉伸,背景視頻及前景登錄組件均能完美適配,背景視頻可始終鋪滿窗口,前景組件始終居中,視頻的內容始終得到最大限度的保留,可以得到最好的視覺效果。并且基于 Vue.js 2.0 全家桶。具體效果如下
        推薦度:
        導讀基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式:本文講述如何實現擁有酷炫背景視頻的登錄頁面,瀏覽器窗口隨意拉伸,背景視頻及前景登錄組件均能完美適配,背景視頻可始終鋪滿窗口,前景組件始終居中,視頻的內容始終得到最大限度的保留,可以得到最好的視覺效果。并且基于 Vue.js 2.0 全家桶。具體效果如下

        本文講述如何實現擁有酷炫背景視頻的登錄頁面,瀏覽器窗口隨意拉伸,背景視頻及前景登錄組件均能完美適配,背景視頻可始終鋪滿窗口,前景組件始終居中,視頻的內容始終得到最大限度的保留,可以得到最好的視覺效果。并且基于 Vue.js 2.0 全家桶。具體效果如下圖所示:

        最終效果可以翻到文章最后觀看。

         

        1. 背景視頻 Web 頁面的既有實現方式

        國外有一個很好的網站 「Coverr」 ,提供了完善的教程和視頻資源,幫助前端開發者構建酷炫的背景視頻主頁,網站效果示例如下圖所示:

         

        教程如下所示:

         

        從圖中以及我的實踐可以得出以下觀點:

      1. 該教程使用了 jQuery 。由于我們想要使用 Vue.js,則 jQuery 可被完全替代掉。
      2. 該教程的 CSS、JavaScript 代碼均過于冗余。
      3. 直接運行示例,發現效果并不好,瀏覽器窗口隨意拉伸時,背景視頻并不能完美適配「會出現黑邊等瑕疵」,效果未達到預期。
      4. 2. 設計完美的背景視頻 Web 頁面

        首先基于腳手架工具 vue-cli 來創建一個使用 vue-loader 的項目,構建完畢后,在相應目錄下創建「.vue」文件,作為登錄頁面的模板文件,具體細節不再贅述。本節內容僅局限于該.vue文件。

        2.1 HTML 模板

        基于需求,對 Coverr 提供的 HTML 模板進行了細微修改,結果如下:

        <template>
         <div class="homepage-hero-module">
         <div class="video-container">
         <div :style="fixStyle" class="filter"></div>
         <video :style="fixStyle" autoplay loop class="fillWidth" v-on:canplay="canplay">
         <source src="PATH_TO_MP4" type="video/mp4"/>
         瀏覽器不支持 video 標簽,建議升級瀏覽器。
         <source src="PATH_TO_WEBM" type="video/webm"/>
         瀏覽器不支持 video 標簽,建議升級瀏覽器。
         </video>
         <div class="poster hidden" v-if="!vedioCanPlay">
         <img :style="fixStyle" src="PATH_TO_JPEG" alt="">
         </div>
         </div>
         </div>
        </template>

        模板中, filter 類的 div 標簽是一層背景視頻的蒙版,可以通過蒙版控制視頻的亮暗以及色溫等。

        video 標簽為標準的 HTML5 標簽,提供兩種格式的視頻以及一張圖片占位符,背景視頻在加載完畢后即自動播放。

        Coverr 提供的原始模板,直接調試,頁面只顯示圖片,而無法播放視頻,通過使用 Vue.js 的 v-if 指令解決了該問題。

        2.2 CSS

        對原始模板 CSS 代碼進行了大幅精簡,修改后的 CSS 代碼如下所示:

        <style scoped>
         .homepage-hero-module,
         .video-container {
         position: relative;
         height: 100vh;
         overflow: hidden;
         }
         .video-container .poster img,
         .video-container video {
         z-index: 0;
         position: absolute;
         }
         .video-container .filter {
         z-index: 1;
         position: absolute;
         background: rgba(0, 0, 0, 0.4);
         }
        </style>

        由于大多數樣式均被項目全局修改了,所以在此專用于此模板的樣式只剩下三條,簡要說明如下:

      5. 容器 div 鋪滿瀏覽器窗口
      6. 蒙版 div 位于視頻的上方,以起到蒙版的作用。
      7. 2.3 JavaScript 代碼

        <script>
         export default {
         name: 'login',
         data() {
         return {
         vedioCanPlay: false,
         fixStyle: ''
         }
         },
         methods: {
         canplay() {
         this.vedioCanPlay = true
         }
         },
         mounted: function() {
         window.onresize = () => {
         const windowWidth = document.body.clientWidth
         const windowHeight = document.body.clientHeight
         const windowAspectRatio = windowHeight / windowWidth
         let videoWidth
         let videoHeight
         if (windowAspectRatio < 0.5625) {
         videoWidth = windowWidth
         videoHeight = videoWidth * 0.5625
         this.fixStyle = {
         height: windowWidth * 0.5625 + 'px',
         width: windowWidth + 'px',
         'margin-bottom': (windowHeight - videoHeight) / 2 + 'px',
         'margin-left': 'initial'
         }
         } else {
         videoHeight = windowHeight
         videoWidth = videoHeight / 0.5625
         this.fixStyle = {
         height: windowHeight + 'px',
         width: windowHeight / 0.5625 + 'px',
         'margin-left': (windowWidth - videoWidth) / 2 + 'px',
         'margin-bottom': 'initial'
         }
         }
         }
         window.onresize()
         }
         }
        </script>

        以上代碼中最重要的部分是對 window 對象的 onresize 事件的監聽。當窗口大小更改時,程序同步修改 video 及蒙版 dom 的尺寸,使得視頻的最窄的邊始終撐滿瀏覽器的窗口,而長的邊左右兩邊被均勻地裁減。

        這樣操作,可以使得視頻不會被拉伸,視頻中心始終位于瀏覽器的中心,并且在隨意拉伸瀏覽器窗口時,視頻的內容始終得到最大限度的保留,并且可以得到最好的視覺效果。

        最終效果如下所示:

         

        參考資料

        資源網站「Coverr」

        Vue.js 中文官網

        總結

        以上所述是小編給大家介紹的基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式

        基于 Vue.js 2.0 酷炫自適應背景視頻登錄頁面實現方式:本文講述如何實現擁有酷炫背景視頻的登錄頁面,瀏覽器窗口隨意拉伸,背景視頻及前景登錄組件均能完美適配,背景視頻可始終鋪滿窗口,前景組件始終居中,視頻的內容始終得到最大限度的保留,可以得到最好的視覺效果。并且基于 Vue.js 2.0 全家桶。具體效果如下
        推薦度:
        標簽: 視頻 背景 登錄
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产亚洲欧美日韩亚洲中文色| 亚洲 无码 在线 专区| 亚洲精品国产精品乱码视色| yellow视频免费看| 亚洲国产精品成人AV无码久久综合影院| 久久夜色精品国产噜噜亚洲a| 成人午夜免费福利视频| 亚洲熟妇av一区二区三区下载| 中文字幕免费视频| 亚洲图片激情小说| 大地资源免费更新在线播放| 亚洲人成自拍网站在线观看| 国产不卡免费视频| 一级看片免费视频| 国产亚洲3p无码一区二区| 国产啪精品视频网站免费尤物| 亚洲国产精品一区第二页 | 亚洲变态另类一区二区三区| 四虎永久精品免费观看| av成人免费电影| 亚洲精品乱码久久久久久按摩 | 亚洲精品无码永久在线观看男男 | 亚洲色婷婷综合开心网| 久久福利青草精品资源站免费| 337p日本欧洲亚洲大胆色噜噜| 无码中文字幕av免费放| 无码亚洲成a人在线观看| 亚洲国产精品人人做人人爱| 日韩免费观看一区| 亚洲激情视频图片| 亚洲片一区二区三区| 日日麻批免费40分钟无码| 国产成人亚洲精品| 亚洲国模精品一区| 69精品免费视频| 亚洲av永久无码| 亚洲国产精品无码专区影院| 成年男女免费视频网站| av午夜福利一片免费看久久| 亚洲视频在线观看网址| 亚洲AV中文无码乱人伦在线视色 |