vue頁(yè)面監(jiān)聽(tīng)是否置為后臺(tái)或可見(jiàn)狀態(tài)問(wèn)題
vue頁(yè)面監(jiān)聽(tīng)是否置為后臺(tái)或可見(jiàn)狀態(tài)
使用場(chǎng)景
- 微信公眾號(hào)網(wǎng)頁(yè)中使用了彈幕,當(dāng)微信在后臺(tái)時(shí),停止彈幕程序的執(zhí)行
- 頁(yè)面有定時(shí)任務(wù)執(zhí)行時(shí),除了退出頁(yè)面要停止外,當(dāng)頁(yè)面在后臺(tái)時(shí),也可以清除定時(shí)任務(wù),當(dāng)可見(jiàn)時(shí),再重新啟動(dòng)
推薦插件
vue-visibility-change
使用方式
安裝
npm i vue-visibility-change
全局使用
import Vue from 'vue' import visibility from 'vue-visibility-change' Vue.use(visibility) const listenPageVisible = visibility.change((evt, hidden) => { console.log('隱藏: ' + hidden) })
局部使用
<template> <div v-visibility-change="listenVisible"></div> </template> <script> export default { methods: { listenVisible(evt, hidden) { console.log('隱藏: ' + hidden) } } } </script>
h5監(jiān)聽(tīng)頁(yè)面進(jìn)入后臺(tái)
方法:
export const pageChangeShowHide = function(){ let hidden,state,visibilityChange; if(typeof document.hidden !== 'undefined'){ hidden = 'hidden'; state = 'visibilityState'; visibilityChange = 'visibilitychange'; }else if(typeof document.mozHidden !== 'undefined'){ hidden = 'mozHidden'; state = 'mozvisibilityState'; visibilityChange = 'mozvisibilitychange'; }else if(typeof document.msHidden !== 'undefined'){ hidden = 'msHidden'; state = 'msvisibilityState'; visibilityChange = 'msvisibilitychange'; }else if(typeof document.webkitHidden !== 'undefined'){ hidden = 'webkitHidden'; state = 'webkitvisibilityState'; visibilityChange = 'webkitvisibilitychange'; } return { hidden,state,visibilityChange } }
頁(yè)面中使用:
this.$nextTick(() => { let { hidden, state, visibilityChange } = common.pageChangeShowHide() document.addEventListener(visibilityChange, ()=> { // 頁(yè)面變?yōu)榭梢?jiàn)時(shí)觸發(fā) if (document[state] == 'visible') { this.memberdayActivityInfo() } }); })
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)登錄時(shí)圖形驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)登錄時(shí)圖形驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03基于Vue3+UniApp在單個(gè)頁(yè)面實(shí)現(xiàn)固定TabBar的多種方式
tabBar 是移動(dòng)端應(yīng)用常見(jiàn)的頁(yè)面效果,用于實(shí)現(xiàn)多頁(yè)面的快速切換,本文給大家介紹了如何基于Vue3+UniApp在單個(gè)頁(yè)面實(shí)現(xiàn)固定TabBar的多種方式,需要的朋友可以參考下2025-03-03ant-design-vue 實(shí)現(xiàn)表格內(nèi)部字段驗(yàn)證功能
這篇文章主要介紹了ant-design-vue 實(shí)現(xiàn)表格內(nèi)部字段驗(yàn)證功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12基于Vue.js 實(shí)現(xiàn)簡(jiǎn)易拖拽指令
在 Vue.js 中,我們可以通過(guò)自定義指令的方式來(lái)實(shí)現(xiàn)拖拽功能,使得代碼更加模塊化和可復(fù)用,本文將介紹如何基于 Vue.js 實(shí)現(xiàn)一個(gè)簡(jiǎn)易的拖拽指令,感興趣的朋友跟隨小編一起看看吧2024-04-04element?el-tree折疊收縮的實(shí)現(xiàn)示例
本文主要介紹了element?el-tree折疊收縮的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08vue 中常用操作數(shù)組的方法(forEach()和reduce())
文章介紹了JavaScript中常用的操作數(shù)組方法,包括forEach()和reduce(),forEach()用于遍歷數(shù)組并對(duì)每個(gè)元素執(zhí)行操作,而reduce()則用于遍歷數(shù)組并進(jìn)行累加等迭代操作,感興趣的朋友一起看看吧2025-03-03VUE中computed 、created 、mounted的先后順序說(shuō)明
這篇文章主要介紹了VUE中computed 、created 、mounted的先后順序說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03vue的Virtual Dom實(shí)現(xiàn)snabbdom解密
這篇文章主要介紹了vue的Virtual Dom實(shí)現(xiàn)- snabbdom解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05vue實(shí)現(xiàn)圖片轉(zhuǎn)pdf的示例代碼
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)圖片轉(zhuǎn)pdf的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以跟隨小編一起了解一下2023-08-08