vue 項(xiàng)目全屏插件screenfull使用案例
一、使用screenfull插件
1. npm安裝screenfull插件
npm install screenfull --save
提示:在vue項(xiàng)目中導(dǎo)入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>
<!--需要全屏展示的內(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)聽頁面全屏
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按鍵按下導(dǎo)致的全屏變化,但是監(jiān)聽不到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è)方法會請求全屏,如果當(dāng)前是全屏則會退出全屏。
// 無需自己再判斷當(dāng)前屏幕狀態(tài)
screenfull.toggle();
},
}二、快速了解screenfull插件
1. 使用方法
- 首先安裝 npm install screenfull --save
- 在使用.vue文件中 引入 import screenfull from ‘screenfull’
- 在按鈕方法中調(diào)用 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: 返回一個(gè)全屏的dom節(jié)點(diǎn),如果沒有就為 null
- .isFullscreen : 是否是全屏狀態(tài)
- .isEnabled : 判斷是否支持全屏
3. 使用注意事項(xiàng)
- requestFullscreen方法只能由用戶觸發(fā)。
- 頁面跳轉(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3 + ElementPlus 封裝列表表格組件包含分頁
文章介紹了如何在Vue3和ElementPlus中封裝一個(gè)包含分頁功能的通用列表表格組件,組件通過props接收表格數(shù)據(jù)、列配置、總條數(shù)、加載狀態(tài)和分頁配置,并通過events處理分頁和刷新事件,此外,還提供了自定義列內(nèi)容和操作按鈕的功能,感興趣的朋友跟隨小編一起看看吧2025-02-02
基于vue實(shí)現(xiàn)swipe分頁組件實(shí)例
本篇文章主要介紹了基于vue實(shí)現(xiàn)swipe分頁組件實(shí)例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
Vue.js實(shí)現(xiàn)雙向數(shù)據(jù)綁定方法(表單自動賦值、表單自動取值)
今天小編就為大家分享一篇Vue.js實(shí)現(xiàn)雙向數(shù)據(jù)綁定方法(表單自動賦值、表單自動取值),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue隨機(jī)驗(yàn)證碼組件的封裝實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何封裝一個(gè)隨機(jī)驗(yàn)證碼的VUE組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
使用vuetify實(shí)現(xiàn)全局v-alert消息通知的方法
使用強(qiáng)大的Vuetify開發(fā)前端頁面,結(jié)果發(fā)現(xiàn)官方?jīng)]有提供簡便的全局消息通知組件,所以自己動手寫了一個(gè)簡單的組件,接下來通過本文給大家介紹使用vuetify實(shí)現(xiàn)全局v-alert消息通知的詳細(xì)代碼,感興趣的朋友跟隨小編一起看看吧2024-02-02
vue elementUI日期報(bào)錯dateObject.getTime is not&nb
文章描述了在使用Vue和Element UI時(shí),日期選擇器報(bào)錯的問題,原因?yàn)閞ules中設(shè)置了type:'date',導(dǎo)致初始化為string類型,修改方法是初始化時(shí)間為new Date(),并去掉rules中的type:'date'2025-12-12
Vue3使用ref解決GetElementById為空的問題
今天遇到一個(gè)問題,就是在Vue3組件中需要獲取template中的元素節(jié)點(diǎn),使用GetElementById返回的卻是null,網(wǎng)上查找了好些資料,才發(fā)需要使用ref,所以本文給大家介紹了Vue3組件中如何使用ref解決GetElementById為空的問題,需要的朋友可以參考下2023-12-12

