vue實現(xiàn)視頻全屏切換功能
最近項目開發(fā)中遇到一個視頻窗口全屏切換功能,為此在這里做個記錄。
具體的實現(xiàn)思路:
<template> <div class="content-box"> <div class="container"> <div id="screen" class="screen"> <el-button @click="screen()"> {{ fullscreen ? "還原" : "最大化" }} </el-button> </div> </div> </div> </template> <script> export default { data() { return { fullscreen: false, }; }, mounted() { window.addEventListener("resize", ()=> { if (!this.isFullScreen()) { // 非全屏狀態(tài) this.fullscreen = false; } }); }, methods: { //判斷是否全屏 isFullScreen() { return !!(document.webkitIsFullScreen || this.fullele()); }, fullele() { return ( document.fullscreenElement || document.webkitFullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || null ); }, screen() { let element = document.getElementById("screen"); if (this.fullscreen) { // 關閉全屏 if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } } else { // 全屏 if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.webkitRequestFullScreen) { element.webkitRequestFullScreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.msRequestFullscreen) { // IE11 element.msRequestFullscreen(); } } this.fullscreen = !this.fullscreen; }, }, }; </script> <style lang="scss" scoped> .screen { width: 500px; height: 500px; background-color: #fff; border: 1px solid red; } </style>
這里需要監(jiān)聽ESC鍵,為此做了特殊處理,這里是Demo,跟使用效果圖基本差不多
知識補充
除了實現(xiàn)視頻全屏切換,vue還可以實現(xiàn)瀏覽器全屏以及退出全屏,下面是實現(xiàn)代碼,希望對大家有所幫助
在src/utils/util.js中加入下面代碼塊
import Vue from 'vue' const util = Vue.prototype.util = {} // 切換全屏 util.fullScreen = function (element) { element = element || document.body; if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.webkitRequestFullscreen) { element.webkitRequestFullscreen(); } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); } } // 退出全屏 util.exitFullscreen = function () { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } } export { util }
2.在頁面中使用全屏/退出全屏
<template> <div class="header"> <!-- 全屏 --> <a v-if="fullScreenFlag" href="javascript:;" rel="external nofollow" rel="external nofollow" class="iconfont iconquanping" title="全屏" @click="fullScreen()"></a> <!-- 退出全屏 --> <a v-else href="javascript:;" rel="external nofollow" rel="external nofollow" class="iconfont icontuichuquanping1" title="退出全屏" @click="exitFullScreen()"></a> </div> </template> <script> export default { data () { return { fullScreenFlag: true, }; }, methods: { // 全屏 fullScreen(){ this.fullScreenFlag = false; this.util.fullScreen(); }, // 退出全屏 exitFullScreen() { this.fullScreenFlag = true; this.util.exitFullscreen(); }, }, }; </script>
到此這篇關于vue實現(xiàn)視頻全屏切換功能的文章就介紹到這了,更多相關vue視頻全屏切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于elementUI實現(xiàn)圖片預覽組件的示例代碼
這篇文章主要介紹了基于elementUI實現(xiàn)圖片預覽組件的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03使用Vue實現(xiàn)調(diào)用接口加載頁面初始數(shù)據(jù)
今天小編就為大家分享一篇使用Vue實現(xiàn)調(diào)用接口加載頁面初始數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10解決el-tree數(shù)據(jù)回顯時子節(jié)點部分選中父節(jié)點都全選中的坑
本文主要介紹了解決el-tree數(shù)據(jù)回顯時子節(jié)點部分選中父節(jié)點都全選中的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08Vue3配置路由ERROR in [eslint]報錯問題及解決
這篇文章主要介紹了Vue3配置路由ERROR in [eslint]報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10Cookbook組件形式:優(yōu)化 Vue 組件的運行時性能
本文仿照Vue Cookbook 組織形式,對優(yōu)化 Vue 組件的運行時性能進行闡述。通過基本的示例代碼給大家講解,需要的朋友參考下2018-11-11Vue中使用pdf.js實現(xiàn)PDF文檔展示功能實例
最近做項目遇到在線預覽和下載pdf文件,試了多種pdf插件,例如jquery.media.js(ie無法直接瀏覽),最后選擇了pdf.js插件,這篇文章主要介紹了Vue中使用pdf.js實現(xiàn)PDF文檔展示功能的相關資料,需要的朋友可以參考下2025-04-04