js監聽F11觸發全屏事件

當用戶使用 F11 鍵進行瀏覽器全屏時,由于此時并非通過瀏覽器提供的 Fullscreen API 進入全屏模式,因此無法通過 fullscreenchange 事件來監聽全屏狀態的變化。在這種情況下,可以通過監聽 resize 事件來檢測瀏覽器窗口大小的變化,從而判斷是否處于全屏模式。

下面是一個示例代碼,演示如何通過監聽 resize 事件來檢測 F11 全屏操作:

let isFullScreen = false;function checkFullScreen() {const fullscreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || ( window.innerHeight === screen.height);if (fullscreenElement) {isFullScreen = true;console.log("進入全屏模式");} else {isFullScreen = false;console.log("退出全屏模式");}
}// 監聽 resize 事件來檢測全屏狀態的變化
window.addEventListener("resize", checkFullScreen);// 頁面加載完畢,初始化全屏狀態
window.addEventListener("load", checkFullScreen);

在上面的代碼中,我們定義了一個 checkFullScreen 函數來檢測全屏狀態,并在頁面加載完成時和窗口大小變化時調用該函數。通過不斷檢測當前是否存在全屏元素,我們可以實現對 F11 全屏操作的監聽和處理。

在 Vue 中,可以在組件的生命周期鉤子函數中添加監聽和移除事件監聽。例如,可以在 mounted 鉤子函數中添加監聽事件,在 beforeDestroy 鉤子函數中移除監聽事件。這樣可以確保在組件銷毀時正確地清除事件監聽,避免內存泄漏和性能問題。

下面是一個示例代碼,演示如何在 Vue 中監聽窗口大小變化事件并在組件銷毀時移除監聽:

export default {mounted() {// 添加窗口大小變化事件監聽window.addEventListener("resize", this.checkFullScreen);window.addEventListener("load", this.checkFullScreen); // 也可以在這里初始化全屏狀態},beforeDestroy() {// 移除窗口大小變化事件監聽window.removeEventListener("resize", this.checkFullScreen);window.removeEventListener("load", this.checkFullScreen);},methods: {checkFullScreen() {const isBrowserFullScreen = window.innerHeight === screen.height;if (isBrowserFullScreen) {console.log("進入全屏模式");} else {console.log("退出全屏模式");}}}
};

在上面的代碼中,我們在 Vue 組件中使用 mounted 鉤子函數添加窗口大小變化事件監聽,在 beforeDestroy 鉤子函數中移除監聽。同時,我們還提供了一個 checkFullScreen 方法用來檢測全屏狀態。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【學習日記】快速排序

思想 快速排序之所以快,一個重要原因就是其每一次遍歷,都把本輪要排序的數字(稱為軸)放到了最終的位置上快排使用分治思想,所以一般采用遞歸實現,非遞歸版本可以用棧根據第一點,我們需要一個函…

[滲透教程]-006-滲透測試-Metasploit

文章目錄 1.Metasploit簡介2.配置2.1方法1 推薦2.2方法23.使用4. Metasploitable2-linuxMetasploit攻擊流程攻擊實例步驟會話管理1.Metasploit簡介 Metasploit是一個滲透測試平臺,使您能夠查找,利用和驗證漏洞.是一個免費的可下載的,通過它可以很容易對計算機軟件漏洞實施攻擊.…

AttributeError_ ‘list‘ object has no attribute ‘view‘

問題描述 訓練yolov9的時候遇到了下面的問題。 In loss_tal.py: pred_distri, pred_scores torch.cat([xi.view(feats[0].shape[0], self.no, -1) for xi in feats], 2).split( (self.reg_max * 4, self.nc), 1) The error is as follows: AttributeError: list …

JavaWeb之 Web概述

目錄 前言1.1 Web和 JavaWeb的概念1.2 JavaWeb技術棧1.2.1 B/S架構1.2.2 靜態資源1.2.3 動態資源1.2.4 數據庫1.2.5 HTTP協議1.2.6 Web服務器 1.3 JavaWeb 學習內容 前言 博主將用 CSDN 記錄 Java 后端開發學習之路上的經驗,并將自己整理的編程經驗和知識分享出來&a…

【Web自動化測試——代碼篇十二】自動化測試模型——數據驅動測試和關鍵字驅動測試

🔥 交流討論:歡迎加入我們一起學習! 🔥 資源分享:耗時200小時精選的「軟件測試」資料包 🔥 教程推薦:火遍全網的《軟件測試》教程 📢歡迎點贊 👍 收藏 ?留言 &#x1…

「優選算法刷題」:刪除字符串中的所有相鄰重復項

一、題目 給出由小寫字母組成的字符串 S,重復項刪除操作會選擇兩個相鄰且相同的字母,并刪除它們。 在 S 上反復執行重復項刪除操作,直到無法繼續刪除。 在完成所有重復項刪除操作后返回最終的字符串。答案保證唯一。 示例: 輸…

理解C#里面的集合有哪些?怎么用,什么是安全集合?

介紹 在C#中,集合是一種用于存儲和操作多個元素的數據結構。它們提供了各種操作,如添加、刪除、查找等,以及遍歷集合中的元素。集合通常根據其實現方式和行為特征進行分類。 集合繼承IEnumerable 在C#中,幾乎所有的集合類型都實現…

簡歷中自我評價,是否應該刪掉?

你好,我是田哥 年后,不少朋友已經開始著手準備面試了,準備面試的第一個問題就是:簡歷。 寫簡歷是需要一些技巧的,你的簡歷是要給面試官看,得多留點心。 很多簡歷上都會寫自我評價/個人優勢/個人總結等&…

2024有哪些免費的mac蘋果電腦深度清理工具?CleanMyMac X

蘋果電腦用戶們,你們是否經常感到你們的Mac變得不再像剛拆封時那樣迅速、流暢?可能是時候對你的蘋果電腦進行一次深度清理了。在這個時刻,擁有一些高效的深度清理工具就顯得尤為重要。今天,我將介紹幾款優秀的蘋果電腦深度清理工具…

一個Web3項目的收官之作,必然是友好的用戶界面(Web3項目三實戰之四)

正如標題所述,一個對用戶體驗友好的應用,總是會贏得用戶大加贊賞,這是毋庸置疑的。 甭管是web2,亦或是已悄然而至的Web3,能有一個外觀優美、用戶體驗效果佳的的界面,那么,這個應用無疑是個成功的案例。 誠然,Web3項目雖然核心是智能合約攥寫,但用戶界面也是一個DApp不…

【Leetcode每日一刷】哈希表|綱領、242.有效的字母異位詞、349. 兩個數組的交集

綱領 🔗代碼隨想錄理論部分 關于哈希表這個數據結構就不再重復講了,下面對幾個關鍵點記錄一下: 哈希碰撞 解決方法1:拉鏈法 解決方法2:線性探測法 下面針對做題要用到的三種結構講一下(也是重復造輪子了…

vue.config.js publicPath 和 vue-router base 結合配置項目根目錄為二級目錄案例

背景: 同個域名下需要有 PC 管理后臺, H5 端, 企業微信 ......等多個端, 需要在一個域名下通過不同的路徑來區分不同的項目; 例如: abc.com/pc, abc.com/h5, abc.com/wx-work.... 此處做個記錄 步驟: 1. 修改 vue.config.js 中的 publicPath module.exports {outputDir:…

MATLAB|【免費】概率神經網絡的分類預測--基于PNN的變壓器故障診斷

目錄 主要內容 部分代碼 結果一覽 下載鏈接 主要內容 ?《MATLAB神經網絡43個案例分析》共有43章,內容涵蓋常見的神經網絡(BP、RBF、SOM、Hopfield、Elman、LVQ、Kohonen、GRNN、NARX等)以及相關智能算法(SVM、決策…

Java 下載excel文件

一、背景 微信小程序需要導出excel文件,后端技術Java,前端使用uniapp框架,使用excel模板。 二、excel 報表模板 需要補充的內容是以下標記問號的,其中有個表格,內容是動態添加的 三、Java端代碼實現 關鍵步驟&…

Topaz Video AI:一鍵提升視頻品質,智能重塑影像魅力 mac/win版

Topaz Video AI是一款革命性的視頻智能處理軟件,它利用先進的機器學習和人工智能技術,為視頻創作者提供了前所未有的視頻增強和修復功能。無論您是專業視頻編輯師、攝影師,還是熱愛視頻創作的愛好者,Topaz Video AI都能幫助您輕松…

webpack打包效率優化,webpack打包體積優化

優化 webpack 打包效率的方法 使用增量構建和熱更新:在開發環境下,使用增量構建和熱更新功能,只重新構建修改過的模塊,減少整體構建時間。避免無意義的工作:在開發環境中,避免執行無意義的工作&#xff0c…

2403C++,C++20協程庫

原文 基于C20協程的http庫--cinatra cinatra是基于C20無棧協程實現的跨平臺,僅頭,高性能,易用的http/https庫(http1.1),包括httpserver和httpclient,功能完備,不僅支持最普通的getpost等請求,還支持restfulapi,websocket,chunked,ranges,multipart,靜態文件服務和反向代理等功…

Python程序的流程

歸納編程學習的感悟, 記錄奮斗路上的點滴, 希望能幫到一樣刻苦的你! 如有不足歡迎指正! 共同學習交流! 🌎歡迎各位→點贊 👍 收藏? 留言?📝 年輕是我們唯一擁有權利去編制夢想的時…

【前端素材】推薦優質后臺管理系統Annex平臺模板(附源碼)

一、需求分析 1、系統定義 后臺管理系統是一種用于管理網站、應用程序或系統的管理界面,通常由管理員和工作人員使用。它提供了訪問和控制網站或應用程序后臺功能的工具和界面,使其能夠管理用戶、內容、數據和其他各種功能。 2、功能需求 后臺管理系…

利用python爬取本站的所有博客鏈接

目錄 前因 首先的嘗試 解決辦法 導入包 定義一個json配置文件 打開瀏覽器執行操作 注意 提取源代碼并且進行篩選鏈接 執行結果 前因 由于自己要把csdn的博客同步到hugo中,把博客轉為md格式已經搞好了,但是由于csdn的圖片具有防盜鏈,…