vue中實(shí)現(xiàn)全屏以及對(duì)退出全屏的監(jiān)聽(tīng)
vue中實(shí)現(xiàn)默認(rèn)進(jìn)來(lái)頁(yè)面,某個(gè)div全屏,并監(jiān)聽(tīng)退出全屏的次數(shù),當(dāng)退出全屏次數(shù)達(dá)到5的時(shí)候跳轉(zhuǎn)到別的頁(yè)面。
實(shí)現(xiàn)步驟:1、頁(yè)面上在你想要的容器上加上id = ‘con_lf_top_div’,再給他加個(gè)動(dòng)態(tài)class名,加上提示和點(diǎn)擊進(jìn)入全屏按鈕
<template> <el-card shadow='never' v-loading.fullscreen.lock='loading' : > <p style='color:red;'>*溫馨提示:請(qǐng)?jiān)谌料逻M(jìn)行考試,退出全屏5次以后將禁止考試</p> <el-button v-if='fullscreen' @click='screen();screen()' style='position: absolute;top: 0px;right: 0;'>全屏</el-button> ...其他內(nèi)容
2、css部分,全屏后的部分需要單獨(dú)加樣式
.isScreen{ height:100vh!important; overflow-y: auto; }
3、js部分
data:
fullscreen:false,//是否全屏goCount:0 //退出第幾次
mounted初始化調(diào)用
mounted() { this.initScreen()}
methods定義方法:
//初始化全屏方法 initScreen(){this.goCount = 0this.screen() //打開(kāi)全屏window.addEventListener(’keydown’, function(event) { //禁掉F11的全屏的默認(rèn)事件,不會(huì)禁止F11的退出全屏 const e = event || window.event if (e && e.keyCode === 122) { e.preventDefault() }})document.addEventListener(’fullscreenchange’, v => { if(this.fullscreen == true){ this.fullscreen = false }else{ this.goCount++ // this.$message.info(’當(dāng)前是退出第’+this.goCount+’次’) console.log(’當(dāng)前是退出第’+this.goCount+’次’) this.fullscreen = true if(this.goCount == 5){ this.goBack() } }}) },
1、頁(yè)面:<el-card : > <p style='color:red;'>*溫馨提示:請(qǐng)?jiān)谌料逻M(jìn)行考試,退出全屏5次以后將禁止考試</p> <el-button v-if='fullscreen' @click='screen();screen()' style='position: absolute;top: 0px;right: 0;'>全屏</el-button> ... 2、data:fullscreen:false,//是否全屏goCount:0 //退出第幾次 3、mounted:this.initScreen() 4、methods: //初始化全屏方法initScreen(){ this.goCount = 0 this.screen() //打開(kāi)全屏 window.addEventListener(’keydown’, function(event) { //禁掉F11的全屏的默認(rèn)事件,不會(huì)禁止F11的退出全屏 const e = event || window.event if (e && e.keyCode === 122) { e.preventDefault() } }) document.addEventListener(’fullscreenchange’, v => { if(this.fullscreen == true){ this.fullscreen = false }else{ this.goCount++ // 注意這里的事件都會(huì)觸發(fā)兩次 console.log(’當(dāng)前是退出第’+this.goCount+’次’) this.fullscreen = true if(this.goCount == 5){ this.goBack() } } })},//全屏方法screen(){ //設(shè)置后就是id==con_lf_top_div 的容器全屏 let element = document.getElementById(’con_lf_top_div’); 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) {// IE11element.msRequestFullscreen(); } } this.fullscreen = !this.fullscreen; },//退出全屏方法goBack(){ //111111111111111111111111111111111111111 this.$message.error(’您已退出全屏5次,當(dāng)前考試已經(jīng)結(jié)束’) this.$router.go(-1)},更多資料:
https://blog.csdn.net/qq_41619796/article/details/104751814
https://blog.csdn.net/wangsiyisiyi/article/details/117086453
到此這篇關(guān)于vue中實(shí)現(xiàn)全屏以及對(duì)退出全屏的監(jiān)聽(tīng)的文章就介紹到這了,更多相關(guān)vue中實(shí)現(xiàn)全屏以及對(duì)退出全屏的監(jiān)聽(tīng)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問(wèn)題及解決2. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊3. 使用JSP技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的在線測(cè)試系統(tǒng)的實(shí)例詳解4. asp批量添加修改刪除操作示例代碼5. 開(kāi)發(fā)效率翻倍的Web API使用技巧6. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)7. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問(wèn)題8. ajax請(qǐng)求后臺(tái)得到j(luò)son數(shù)據(jù)后動(dòng)態(tài)生成樹(shù)形下拉框的方法9. .NET6打包部署到Windows Service的全過(guò)程10. WML的簡(jiǎn)單例子及編輯、測(cè)試方法第1/2頁(yè)
