我的页面上有多个元素,它们在使用javascript setInterval 的计时器上淡入淡出以将它们设置为运动。我把它们延迟了,所以它们稍微偏移一下,以创造一个很好的级联效果,但如果你让页面打开足够长的时间,它们都会互相赶上,时间就会变得一团糟(你必须把它留到几分钟)。
我在 CodePen 有一个丑陋的例子:http ://www.cdpn.io/wgqJj
同样,您必须让页面保持打开状态几分钟才能看到问题。如果页面上有更多项目(5 或 10),问题会变得更加明显。我还在几个 jQuery 照片旋转器插件中使用过这种效果,随着时间的推移,这个问题总是会出现。
对此有什么解释吗?
这是我正在使用的代码(我知道 javascript 可能更干净):
HTML:
<p id="one">First</p>
<p id="two">Second</p>
<p id="three">Third</p>
JavaScript:
$(document).ready(function() {
var timer1 = setTimeout(startOne,1000);
var timer2 = setTimeout(startTwo,2000);
var timer3 = setTimeout(startThree,3000);
});
function startOne () {
setInterval(flashOne,3000);
}
function startTwo () {
setInterval(flashTwo,3000);
}
function startThree () {
setInterval(flashThree,3000);
}
function flashOne () {
$("#one").fadeTo("slow",0.4).fadeTo("slow",1.0);
}
function flashTwo () {
$("#two").fadeTo("slow",0.4).fadeTo("slow",1.0);
}
function flashThree () {
$("#three").fadeTo("slow",0.4).fadeTo("slow",1.0);
}