js倒计时锁屏解决方案
2017-11-06 本文已影响327人
kate2020
// 两个倒计时 一个锁屏时调用 一个非锁屏时调用 放在闭包中阻止自执行
var a = function () {setInterval(function(){
timer()
}, 1000)
}
var b = function () {setInterval(function(){
timer()
}, 1000)
}
// 判断系统
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";
}
// 锁屏和非锁屏执行逻辑
function handleVisibilityChange() {
if (document.hidden) {
b()
} else {
a()
}
}
// 添加监听事件
if (typeof document.addEventListener === "undefined" || typeof document[hidden] === "undefined") {
} else {
document.addEventListener(visibilityChange, handleVisibilityChange(), false);
}