【发布时间】:2013-08-20 12:29:49
【问题描述】:
我创建了这个函数,它每 3 秒触发一次按钮。现在,在我正在开发的网站上,页面上同时有 16 个这样的人,彼此相隔半秒。 Now when the tab becomes inactive, the timings get all screwed up and it doesnt work.我可以在代码中添加什么以使其在选项卡处于非活动状态时暂停动画或让它们实时继续。我个人不在乎哪一个有效,只要有效即可。
我为这个项目做了一个小提琴。
脉冲的代码是这样的
function fadeItIn() {
window.setInterval(function () {
// Fade Ins
$('#child4').fadeIn(175);
setTimeout(function () {
$('#child3').fadeIn(175);
}, 175);
setTimeout(function () {
$('#child2').fadeIn(175);
}, 350);
setTimeout(function () {
$('#child1').fadeIn(175);
}, 525);
setTimeout(function () {
$('#child').fadeIn(175);
}, 700);
// Fade Outs
setTimeout(function () {
$('#child').fadeOut(175);
}, 875);
setTimeout(function () {
$('#child1').fadeOut(175);
}, 1050);
setTimeout(function () {
$('#child2').fadeOut(175);
}, 1225);
setTimeout(function () {
$('#child3').fadeOut(175);
}, 1400);
setTimeout(function () {
$('#child4').fadeOut(175);
}, 1575);
}, 3000);
}
该函数在 JS 文档的开头被调用。再说一次,我不介意哪个有效,只要它有效。
【问题讨论】:
-
FWIW,即使页面没有处于非活动状态,这些时间也会慢慢漂移。你给
setTimeout的值并不是绝对精确的。我会改用一个 125 毫秒的计时器,并记住要淡出哪个元素(以及以哪种方式)。但这并不能解决您的问题……等一下,也许可以。我会发布一个答案。 :-) -
我喜欢最后一部分哈哈。
标签: jquery google-chrome settimeout setinterval