這期內(nèi)容當中小編將會給大家?guī)碛嘘Phtml5的Page Visibility API如何實現(xiàn)獲取焦點js事件,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務岳普湖,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
當前窗口獲得焦點js事件,html5發(fā)布之前我們使用window.onfocus和window.onblur來獲得窗口焦點和失去窗口焦點
//當前窗口得到焦點 window.onfocus = function() { //播放動畫或視頻 }; //當前窗口失去焦點 window.onblur = function() { //暫停動畫或視頻 };
這個方法可以實現(xiàn)切換標簽暫停動畫視頻,但是會帶來一個問題,由于是判斷焦點,如果是在當前頁面上鋪上一個小窗口,那當前頁面就暫停了動畫,試想,如果你一邊看片,一邊開個聊天窗口與MM聊天,當你操作聊天窗口的時候,視頻暫停了,這并不是你想要的效果。
現(xiàn)在我們來看看HTML5是怎么解決的。H5 提供了很多簡單實用的 API,Page Visibility API 就是其中之一。 Page Visibility API能有效的幫助我們完成這樣的判斷。
使用html5的Page Visibility API來實現(xiàn)
這個 API 本身非常簡單,由以下三部分組成。
document.hidden:表示頁面是否隱藏的布爾值。頁面隱藏包括 頁面在后臺標簽頁中 或者 瀏覽器最小化 (注意,頁面被其他軟件遮蓋并不算隱藏,比如打開的 sublime 遮住了瀏覽器)。
document.visibilityState:表示下面 4 個可能狀態(tài)的值
hidden:頁面在后臺標簽頁中或者瀏覽器最小化
visible:頁面在前臺標簽頁中
prerender:頁面在屏幕外執(zhí)行預渲染處理 document.hidden 的值為 true
unloaded:頁面正在從內(nèi)存中卸載
Visibilitychange事件:當文檔從可見變?yōu)椴豢梢娀蛘邚牟豢梢娮優(yōu)榭梢姇r,會觸發(fā)該事件。
這樣,我們可以監(jiān)聽 Visibilitychange 事件,當該事件觸發(fā)時,獲取 document.hidden 的值,根據(jù)該值進行頁面一些事件的處理。
document.addEventListener('visibilitychange', function() { var isHidden = document.hidden; if (isHidden) { // 動畫視頻暫停 } else { // 動畫視頻開始 } });
結合demo中的實例,切換標簽或者最小化的時候,demo中的視頻會暫停,恢復當前頁面時,demo中的視頻會繼續(xù)播放。完整的代碼如下:
var videoElement = document.getElementById("videoElement"); // 如果頁面被隱藏,則暫停播放,如果頁面恢復,則繼續(xù)播放 function handleVisibilityChange() { if (document[hidden]) { videoElement.pause(); } else { videoElement.play(); } } // 判斷瀏覽器的支持情況 if (typeof document.addEventListener === "undefined" || typeof document[hidden] === "undefined") { consol.log("This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API."); } else { // 監(jiān)聽visibilityChange事件 document.addEventListener(visibilityChange, handleVisibilityChange, false); // 當播放器暫停的時候,將頁面標題設置為:Paused. videoElement.addEventListener("pause", function(){ document.title = 'Paused'; }, false); // 當播放器正常播放時,將頁面標題設置為:Playing. videoElement.addEventListener("play", function(){ document.title = 'Playing'; }, false); }
上述就是小編為大家分享的html5的Page Visibility API如何實現(xiàn)獲取焦點js事件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文名稱:html5的PageVisibilityAPI如何實現(xiàn)獲取焦點js事件
URL鏈接:http://aaarwkj.com/article16/peihgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、App開發(fā)、全網(wǎng)營銷推廣、網(wǎng)站設計公司、云服務器、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)