ifvisible.js页面可见性检测库

跨浏览器状态监听的利器 ifvisible.js,用起来挺顺手的。轻量、没依赖,能判断用户是不是在看页面,或者多久没动鼠标键盘,适合搞弹窗提醒、自动暂停视频之类的交互优化场景。

页面可见性的判断,主要靠 ifvisible.now() 方法。你可以这样写:

if (ifvisible.now()) {
  openPopUp();
}

意思就是:只要页面当前可见,就执行弹窗。

还支持判断页面是不是“隐藏”状态,比如切到别的标签页时:

if (!ifvisible.now('hidden')) {
  openPopUp();
}

判断逻辑挺直观的,状态还包括 idle,也就是用户挂那儿没动的情况。

支持 npmbowermeteor 安装,基本上你项目啥环境都能用:

npm install ifvisible.js --save
bower install ifvisible.js
mrt add ifvisible

如果你做的是多标签页交互用户行为监控自动节能切换这类功能,这工具还挺适合的。毕竟有些场景,用户走了还不停播视频、跑求,多少有点浪费。

顺带一提,如果你对浏览器交互、兼容性优化感兴趣,可以看看下面这些资源:

如果你做的前端项目有用户状态依赖,不妨试试 ifvisible.js,装起来简单,用起来顺手。

zip
ifvisible_js-master.zip 预估大小:38个文件
folder
ifvisible.js-master 文件夹
file
.gitignore 152B
file
package.json 2KB
folder
src 文件夹
file
Events.ts 1KB
file
Timer.ts 796B
folder
__tests__ 文件夹
file
Events.test.ts 2KB
file
main.ts 361B
file
ifvisible.ts 6KB
file
LICENSE.md 1KB
file
webpack.config.js 1KB
file
tsconfig.json 430B
folder
.github 文件夹
file
FUNDING.yml 753B
file
.eslintrc.js 2KB
file
README.md 3KB
folder
.vscode 文件夹
file
settings.json 96B
file
tasks.json 574B
file
.npmignore 152B
folder
docs 文件夹
file
ifvisible.js 33KB
folder
docco 文件夹
file
Timer.html 4KB
folder
src 文件夹
file
Timer.html 4KB
file
main.html 3KB
file
ifvisible.html 20KB
file
Events.html 6KB
file
docco.css 10KB
folder
public 文件夹
folder
fonts 文件夹
file
roboto-black.eot 20KB
file
aller-light.ttf 67KB
file
roboto-black.ttf 44KB
file
roboto-black.woff 24KB
file
aller-bold.ttf 65KB
file
aller-light.eot 29KB
file
aller-light.woff 32KB
file
aller-bold.woff 32KB
file
aller-bold.eot 29KB
folder
stylesheets 文件夹
file
normalize.css 7KB
file
main.html 3KB
file
ifvisible.html 20KB
file
Events.html 6KB
file
index.html 4KB
file
yarn.lock 230KB
zip 文件大小:390.4KB