我最近创建了一个 HTML5 画布动画(也使用Processing.js)。
问题是,当我将浏览器切换到不同的选项卡时,动画停止播放。
当用户位于与包含动画的选项卡不同的选项卡时,如何允许动画继续播放?
例子:http://jsfiddle.net/EyFTr/3/ http://jsfiddle.net/EyFTr/3/
如果您切换选项卡,时钟会停止,但如果您打开链接一个新窗口并模糊窗口,时钟仍然会移动。
简短的回答是你不能。
https://developer.mozilla.org/en/DOM/window.setTimeout https://developer.mozilla.org/en/DOM/window.setTimeout
在(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)和 Chrome 11 中,超时被限制为在非活动选项卡中每秒触发次数不超过一次(1000 毫秒);有关 Mozilla 中的详细信息,请参阅 bug 633421;有关 Chrome 中的详细信息,请参阅 crbug.com/66078。
所讨论的浏览器在这句话中有点旧,但它仍然具有相关性。这是设计使然。它是为了在选项卡不活动时减少处理器负载。 (Processing.js 使用setTimeout
用于动画)
有几种方法可以“解决”这个问题。它们涉及检查时间,并在选项卡激活后根据时间计算对象“应该”位于的位置。然而,在您的示例中,您的代码看起来会这样做,因为它是一个基于时间的时钟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)