亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    如何使用html5的Page Visibility API來實現(xiàn)獲取焦點js事件

    當(dāng)前窗口獲得焦點js事件,html5發(fā)布之前我們使用window.onfocus和window.onblur來獲得窗口焦點和失去窗口焦點

    //當(dāng)前窗口得到焦點   window.onfocus = function() {     //播放動畫或視頻   };      //當(dāng)前窗口失去焦點   window.onblur = function() {     //暫停動畫或視頻   };

    這個方法可以實現(xiàn)切換標(biāo)簽暫停動畫視頻,但是會帶來一個問題,由于是判斷焦點,如果是在當(dāng)前頁面上鋪上一個小窗口,那當(dāng)前頁面就暫停了動畫,試想,如果你一邊看片,一邊開個聊天窗口與MM聊天,當(dāng)你操作聊天窗口的時候,視頻暫停了,這并不是你想要的效果。

    現(xiàn)在我們來看看HTML5是怎么解決的。H5 提供了很多簡單實用的 API,Page Visibility API 就是其中之一。 Page Visibility API能有效的幫助我們完成這樣的判斷。

    使用html5的Page Visibility API來實現(xiàn)

    這個 API 本身非常簡單,由以下三部分組成。

    document.hidden:表示頁面是否隱藏的布爾值。頁面隱藏包括 頁面在后臺標(biāo)簽頁中 或者 瀏覽器最小化 (注意,頁面被其他軟件遮蓋并不算隱藏,比如打開的 sublime 遮住了瀏覽器)。

    document.visibilityState:表示下面 4 個可能狀態(tài)的值

    hidden:頁面在后臺標(biāo)簽頁中或者瀏覽器最小化

    visible:頁面在前臺標(biāo)簽頁中

    prerender:頁面在屏幕外執(zhí)行預(yù)渲染處理 document.hidden 的值為 true

    unloaded:頁面正在從內(nèi)存中卸載

    Visibilitychange事件:當(dāng)文檔從可見變?yōu)椴豢梢娀蛘邚牟豢梢娮優(yōu)榭梢姇r,會觸發(fā)該事件。

    這樣,我們可以監(jiān)聽 Visibilitychange 事件,當(dāng)該事件觸發(fā)時,獲取 document.hidden 的值,根據(jù)該值進行頁面一些事件的處理。

    document.addEventListener('visibilitychange', function() {     var isHidden = document.hidden;     if (isHidden) {       // 動畫視頻暫停     } else {       // 動畫視頻開始     }   });

    結(jié)合demo中的實例,切換標(biāo)簽或者最小化的時候,demo中的視頻會暫停,恢復(fù)當(dāng)前頁面時,demo中的視頻會繼續(xù)播放。完整的代碼如下:

    var videoElement = document.getElementById("videoElement");      // 如果頁面被隱藏,則暫停播放,如果頁面恢復(fù),則繼續(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);            // 當(dāng)播放器暫停的時候,將頁面標(biāo)題設(shè)置為:Paused.     videoElement.addEventListener("pause", function(){       document.title = 'Paused';     }, false);            // 當(dāng)播放器正常播放時,將頁面標(biāo)題設(shè)置為:Playing.     videoElement.addEventListener("play", function(){       document.title = 'Playing';      }, false);   }

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號