blur
上有focus
和window
事件,但是当整个浏览器窗口失去焦点时它们也会触发。然后,浏览器可能仍然对用户可见。当然,这样的事件是特定于浏览器的,但是没关系。之所以要这样做,是因为我运行的动画可能会占用大量CPU时间。当浏览器选项卡不可见时,没有理由继续进行动画处理。现在,我知道现代浏览器会降低背景标签的计时器分辨率,但是我实际上可以暂停动画,这样就不会浪费任何CPU时间。
如果您想知道的话,这就是我m写作:
http://panzi.github.com/Browser-Ponies/
#1 楼
至少Google Chrome支持webkitvisibilitychange
事件和document.webkitHidden
属性。请参阅可见性API。但是,似乎仅当显示的选项卡更改时才会触发,而不是在整个窗口最小化时触发。 Internet Explorer似乎也有一个visibilitychange
事件,但是文档中没有对此进行任何说明。评论
Firefox现在还具有可见性API,developer.mozilla.org / en-US / docs / Web / Guide / User_experience / ...
– A_funs
13年5月23日在3:04
caniuse现在报告了可见性API的出色支持(caniuse.com/#feat=pagevisibility)
–达沃·赫格(Davor Hrg)
17-2-24在12:02
#2 楼
我相信您会发现,最接近的答案是这里的最佳答案:是否可以通过Javascript跟踪标签上的焦点?
#3 楼
现在他们正好具有所需的资源:https://developer.mozilla.org/zh-CN/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API
评论
正如我在自己的答案中提到的那样:最小化/还原窗口时,这不会触发。但是,是的,总比没有强。
– Panzi
15年1月4日在18:18
评论
那么,您是在问如何分辨选项卡何时停止显示或不再具有焦点吗?