初次载入时,建立一个延迟10秒执行的setTimeout。
如果web页面有鼠标弹起事件,则清除上次设置的setTimeout,重新建立一个延迟10秒执行的setTimeout。
function hasOperate(callback, second) {
let timer;
document.body.onmouseup = function() {
countTime();
}
function countTime() {
if(timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
callback();
}, second);
}
countTime();
};
function setInactiveLoading() {
// 触发事件
$rootScope.inactiveLoading = true;
$rootScope.$apply();
}
hasOperate(setInactiveLoading, 10000);
该例子中为长时间不操作则给页面添加一个遮罩。
<div class="inactive-overlay-message" ng-show="inactiveLoading" ng-click="inactiveLoading = !inactiveLoading"></div>