国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JavaScript > 正文

如何使用html5的Page Visibility API來實現獲取焦點js事件

2020-03-24 16:03:51
字體:
來源:轉載
供稿:網友
當前窗口獲得焦點js事件,html5發布之前我們使用window.onfocus和window.onblur來獲得窗口焦點和失去窗口焦點

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

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

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

使用html5的Page Visibility API來實現

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

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

document.visibilityState:表示下面 4 個可能狀態的值

hidden:頁面在后臺標簽頁中或者瀏覽器最小化

visible:頁面在前臺標簽頁中

prerender:頁面在屏幕外執行預渲染處理 document.hidden 的值為 true

unloaded:頁面正在從內存中卸載

Visibilitychange事件:當文檔從可見變為不可見或者從不可見變為可見時,會觸發該事件。

這樣,我們可以監聽 Visibilitychange 事件,當該事件觸發時,獲取 document.hidden 的值,根據該值進行頁面一些事件的處理。

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

結合demo中的實例,切換標簽或者最小化的時候,demo中的視頻會暫停,恢復當前頁面時,demo中的視頻會繼續播放。完整的代碼如下:

var videoElement = document.getElementById( videoElement // 如果頁面被隱藏,則暫停播放,如果頁面恢復,則繼續播放 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 {  // 監聽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來實現獲取焦點js事件的詳細內容,其它編程語言

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旬阳县| 晋江市| 商河县| 屏南县| 通化县| 聂荣县| 嘉黎县| 茌平县| 逊克县| 宁乡县| 长海县| 洪洞县| 新巴尔虎左旗| 柯坪县| 新郑市| 达州市| 监利县| 临夏县| 海原县| 筠连县| 青州市| 平陆县| 新乡市| 兴和县| 宣恩县| 文登市| 晋中市| 蒙山县| 德昌县| 子长县| 陆良县| 体育| 绵竹市| 二手房| 资源县| 威信县| 英吉沙县| 临桂县| 黄平县| 岳阳市| 安仁县|