• <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
      <ol id="mz5ne"></ol>
    1. <samp id="mz5ne"></samp>
      <mark id="mz5ne"></mark>

        <fieldset id="mz5ne"></fieldset>

        免费看又黄又无码的网站_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片_日本最新免费二区三区

        ×

        當(dāng)前窗口獲得焦點(diǎn)js事件【visibilitychange】

        • 作者:sdfcsd
        • 來源:互聯(lián)網(wǎng)
        • 瀏覽:100
        • 2020-04-17 15:42:15

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

        webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial>

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

         監(jiān)聽 onfocus() 和window.onblur()事件實(shí)現(xiàn)

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

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

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

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

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

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

        document.visibilityState:表示下面 4 個(gè)可能狀態(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(shí),會觸發(fā)該事件。

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

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

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

        var hidden, visibilityChange;  
        if (typeof document.hidden !== "undefined") {  
          hidden = "hidden"; 
          visibilityChange = "visibilitychange"; 
        } else if (typeof document.msHidden !== "undefined") { 
          hidden = "msHidden"; 
          visibilityChange = "msvisibilitychange"; 
        } else if (typeof document.webkitHidden !== "undefined") { 
          hidden = "webkitHidden"; 
          visibilityChange = "webkitvisibilitychange"; 
        } 
          
        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)播放器暫停的時(shí)候,將頁面標(biāo)題設(shè)置為:Paused. 
          videoElement.addEventListener("pause", function(){ 
            document.title = \'Paused\'; 
          }, false); 
             
          // 當(dāng)播放器正常播放時(shí),將頁面標(biāo)題設(shè)置為:Playing. 
          videoElement.addEventListener("play", function(){ 
            document.title = \'Playing\';  
          }, false); 
        }

        免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

        免費(fèi)咨詢獲取折扣

        Loading
        国产精品视频白浆免费视频_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片
      1. <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
          <ol id="mz5ne"></ol>
        1. <samp id="mz5ne"></samp>
          <mark id="mz5ne"></mark>

            <fieldset id="mz5ne"></fieldset>
            麦盖提县| 德令哈市| 佳木斯市| 田阳县| 新乐市| 读书| 柯坪县| 沧源| 寿宁县| 华安县| 海城市| 吕梁市| 铁岭市| 晋中市| 浦县| 莒南县| 合川市| 和平县| 大港区| 鸡东县| 寿宁县| 南投市| 江山市| 承德县| 右玉县| 桂林市| 襄汾县| 天台县| 忻城县| 香河县| 彰化县| 镇沅| 天水市| 兴国县| 遵义市| 盈江县| 舞钢市| 龙山县| 孟州市| 郸城县| 老河口市|