vue 項目全屏插件screenfull使用案例
一、使用screenfull插件
1. npm安裝screenfull插件
npm install screenfull --save
提示:在vue項目中導入screenfull插件,出現(xiàn)編譯錯誤,錯誤如圖所示:
原因分析:
安裝的screenfull插件版本過高
解決方法:
降低插件版本
npm install screenfull@4.2.0 --save
2. 在vue文件中引入screenfull插件
import screenfull from 'screenfull'
3. vue文件demo
<template> <div> <ul> <li @click="clickFun">{{isFullFlag?'退出全屏':'全屏'}}</li> <li @click="clickFun1">{{isFullFlag1?'退出部分全屏':'部分全屏'}}</li> </ul> <!--需要全屏展示的內容--> <div id="content"></div> </div> </template>
<script> import screenfull from 'screenfull' export default { name: "HelloWorld", data() { return { isFullFlag: false, isFullFlag1: false, } }, mounted() { // 監(jiān)聽頁面全屏 window.addEventListener("fullscreenchange", (e) => { console.log(screenfull.isFullscreen) this.isFullFlag = screenfull.isFullscreen }) }, methods: { clickFun() { this.isFullFlag = !this.isFullFlag console.log(screenfull) if (!screenfull.enabled) { this.$message({ message: 'Your browser does not work', type: 'warning' }) return false } screenfull.toggle() }, clickFun1() { this.isFullFlag1 = !this.isFullFlag1 const element = document.getElementById('content');//指定全屏區(qū)域元素 if (this.isFullFlag1) { // screenfull.request(element); element.requestFullscreen() } else { document.exitFullscreen(); } }, }, }; </script>
4. 監(jiān)聽F11和手動的全屏、退出全屏事件
<i class="i_icon el-icon-full-screen" @click="isScreenFull"></i>
import screenfull from 'screenfull' mounted() { this.screenFull(); }, methods: { //監(jiān)聽Esc事件; screenFull() { //監(jiān)聽f11事件 window.addEventListener("keydown", this.KeyDown, true); //這些監(jiān)聽,可以監(jiān)聽到esc按鍵按下導致的全屏變化,但是監(jiān)聽不到F11的打開全屏的變化,isScreenFull document.addEventListener("fullscreenchange", () => { this.isFullscreen = !this.isFullscreen;//你要切換得圖標使用得屬性 }); document.addEventListener("mozfullscreenchange", () => { this.isFullscreen = !this.isFullscreen; }); document.addEventListener("webkitfullscreenchange", () => { this.isFullscreen = !this.isFullscreen; }); document.addEventListener("msfullscreenchange", () => { this.isFullscreen = !this.isFullscreen; }); }, KeyDown(event) { if (event.keyCode === 122) { event.returnValue = false; this.isScreenFull(); //觸發(fā)全屏的方法 } }, //全屏方法 isScreenFull() { if (!screenfull.isEnabled) { return false; } // 這個方法會請求全屏,如果當前是全屏則會退出全屏。 // 無需自己再判斷當前屏幕狀態(tài) screenfull.toggle(); }, }
二、快速了解screenfull插件
1. 使用方法
- 首先安裝 npm install screenfull --save
- 在使用.vue文件中 引入 import screenfull from ‘screenfull’
- 在按鈕方法中調用 screenfull.toggle()
- 還可以檢測全屏狀態(tài) screenfull.isFullscreen
- 測試瀏覽器是否支持全screenfull screenfull.isEnabled
2. API
- .request(ele) 全屏
- .exit() 退出全屏
- .toggle() 切換全屏
- .on(event, function) : event為 ‘change’ | ‘error’ 注冊事件
- .off(event, function) : 移除前面已經(jīng)注冊的事件
- .element: 返回一個全屏的dom節(jié)點,如果沒有就為 null
- .isFullscreen : 是否是全屏狀態(tài)
- .isEnabled : 判斷是否支持全屏
3. 使用注意事項
- requestFullscreen方法只能由用戶觸發(fā)。
- 頁面跳轉需先退出全屏
- 進入全屏的元素,將脫離其父元素,所以可能導致之前某些css的失效
- 解決方案:使用 :full-screen偽類 為元素添加全屏時的樣式(使用時為了兼容注意添加-webkit、-moz或-ms前綴)
- 我這里是使用原生的方法修改了css
- 一個元素A全屏后,其子元素要再全屏,需先讓元素A退出全屏
到此這篇關于vue 項目設置全屏,使用screenfull插件的文章就介紹到這了,更多相關vue設置全屏內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何在 Vite 項目中自動為每個 Vue 文件導入 base.les
在Vite配置中通過添加css.preprocessorOptions實現(xiàn)自動導入base.less,簡化Vue組件的樣式設置,提高代碼的可維護性,感興趣的朋友跟隨小編一起看看吧2024-09-09Vue數(shù)據(jù)變化監(jiān)聽錯誤的常見原因與解決方案
在?Vue.js?開發(fā)中,watch?是一個強大的工具,用于監(jiān)聽數(shù)據(jù)的變化并執(zhí)行相應的操作,然而,許多開發(fā)者在使用?watch?時會遇到數(shù)據(jù)變化未被正確監(jiān)聽的問題,這可能導致程序邏輯錯誤或視圖更新失敗,本文將探討這些問題的常見原因,并提供相應的解決方案,需要的朋友可以參考下2025-03-03Vue axios 將傳遞的json數(shù)據(jù)轉為form data的例子
今天小編就為大家分享一篇Vue axios 將傳遞的json數(shù)據(jù)轉為form data的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10vue3?el-table結合seamless-scroll實現(xiàn)表格數(shù)據(jù)滾動的思路詳解
這篇文章主要介紹了vue3?el-table結合seamless-scroll實現(xiàn)表格數(shù)據(jù)滾動,創(chuàng)建兩個table,隱藏第一個table的body部分,這樣就能得到一個固定的head,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07vue項目中銷毀window.addEventListener事件監(jiān)聽解析
這篇文章主要介紹了vue項目中銷毀window.addEventListener事件監(jiān)聽,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07