我正在使用setTimeout()在网站上制作带有横幅广告的“幻灯片”网站.一切正常,我将延迟设置为10秒.仅当我切换窗口/选项卡并执行其他操作时,才会出现此问题.当我回来时,该函数运行了很多次(假设)以赶上进度.问题是,我的屏幕开始一遍又一遍地闪烁,以显示所有横幅淡入和淡出.
关于解决方案有什么想法吗?我在Google Chrome浏览器中注意到了这一点,也知道在Firefox中会发生这种情况.不确定IE.
编辑
这是我正在处理的代码段.可悲的是,它是一个非常大的脚本的一部分,并连接到一个非常复杂的HTML文件.
我希望您至少可以了解这里发生的情况:
var lval=0;
var nval=1;
setHead = function(data) {
lval=nval;
var index=1;
$.each(data, function(name,value) {
if (Math.floor(Math.random()*index+2)==index+1) {
nval=index;
}
if (index==lval) {
$('.headmaster').find('img').fadeOut('fast');
//$('.headmaster').css('background-color',value.backgroundcolor);
$('.headmaster').find('a').attr('href',value.url);
$('.headmaster').animate({backgroundColor:value.backgroundcolor},'slow',function() {
$('.headmaster').find('img').attr('src',value.img);
$('.headmaster').find('img').fadeIn('slow');
});
}
index++;
});
setTimeout(function() { setHead(data); },10000);
}
arrayGet = function(arr,idx) {
$.each(arr, function(i,v) {
if (i==idx) {
return v
}
});
return null
}
$(document).ready(function() {
$.getJSON('json/intros.json', setHead);
});
我正在使用jQuery制作动画,并使用颜色插件来淡化颜色.
解决方法:
这可能是因为您使用的是旧版jQuery.即开发团队已开始使用requestAnimationFrame API的团队.幸运的是,他们在1.6.3中修复了它.以下是他们的blog的摘录:
No more animation “worm holes”: We had high hopes for the browser’s
requestAnimationFrame
API when we added support into version
1.6. However, one of the highest-volume complaints we’ve received since then relates to the wayrequestAnimationFrame
acts when a tab is
not visible. All the animations initiated when the tab is invisible
“stack” and are not executed until the tab is brought back into focus.
Then they all animate at warp speed! We’ve removed support for this
API (which has no impact on the way you call jQuery’s animation
features) and plan to incorporate it into a future version of jQuery.
只需更新到1.6.4.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。