Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript代码在失去焦点时停止_Javascript_Focus_Delay_Sleep - Fatal编程技术网

JavaScript代码在失去焦点时停止

JavaScript代码在失去焦点时停止,javascript,focus,delay,sleep,Javascript,Focus,Delay,Sleep,我们的项目使用了多种库(Kinetic Js、jquery、buzz.Js等),我们有很多动画正在进行,一些声音同时播放,我们的目的是在用户更改浏览器的选项卡或窗口时停止所有JavaScript进程,从而失去焦点 我们知道,onBlur和onFocus使我们能够检测到这种变化,通过一个setTimeOut功能,我们可以停止这种变化。我们想知道是否有一种更有效的方法或更低级的解决方案 提前感谢。这些天,有requestAnimationFrame() 文章提供了有关浏览器支持的信息,以及如何在不支

我们的项目使用了多种库(Kinetic Js、jquery、buzz.Js等),我们有很多动画正在进行,一些声音同时播放,我们的目的是在用户更改浏览器的选项卡或窗口时停止所有JavaScript进程,从而失去焦点

我们知道,
onBlur
onFocus
使我们能够检测到这种变化,通过一个
setTimeOut
功能,我们可以停止这种变化。我们想知道是否有一种更有效的方法或更低级的解决方案


提前感谢。

这些天,有requestAnimationFrame()


文章提供了有关浏览器支持的信息,以及如何在不支持浏览器的浏览器中进行模拟:。

如今,出现了requestAnimationFrame()


文章提供了有关浏览器支持的信息,以及如何在不支持浏览器的浏览器中进行模拟:。

blur仅对实际接受焦点的元素有用,而不是所有元素都有用。当选项卡或浏览器失去窗口焦点时,一些浏览器会自动推迟某些事情的执行(例如,我认为Chrome停止播放Flash)。我原以为搜索“检测选项卡是否当前处于活动状态”会发现一些东西。模糊只对实际接受焦点的元素有用,而不是所有元素都有用。当选项卡或浏览器失去窗口焦点时,一些浏览器会自动推迟某些事情的执行(例如,我认为Chrome停止播放Flash)。我原以为搜索“检测标签是否当前处于活动状态”会发现一些东西。我们同时播放动画和声音。当前选项卡失去焦点时,声音仍会播放,但动画会冻结。我们使用CreateJS制作动画,使用BuzzJS播放声音。我们的问题不是基于CPU的使用,而是要控制动画+声音。我们可以做些什么来避免动画冻结?或者,在另一方面,当声音和动画失去焦点时,我们如何停止声音和动画?您的声音是连续的还是与动画同步?我们尝试使声音与动画同步。一些动画包含部分文本,相应的声音是有人口述文本。@JoséSilva我也注意到了这个问题。看起来这是浏览器本身以及处理基于CSS的动画的方式的问题。我认为如果你有画布动画,这个问题不会发生,因为画布动画完全依赖于我们的实现,而不是浏览器供应商。我们同时有动画和声音播放。当前选项卡失去焦点时,声音仍会播放,但动画会冻结。我们使用CreateJS制作动画,使用BuzzJS播放声音。我们的问题不是基于CPU的使用,而是要控制动画+声音。我们可以做些什么来避免动画冻结?或者,在另一方面,当声音和动画失去焦点时,我们如何停止声音和动画?您的声音是连续的还是与动画同步?我们尝试使声音与动画同步。一些动画包含部分文本,相应的声音是有人口述文本。@JoséSilva我也注意到了这个问题。看起来这是浏览器本身以及处理基于CSS的动画的方式的问题。我认为如果你有画布动画,这个问题不会发生,因为画布动画完全依赖于我们的实现,而不是浏览器供应商。