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