Javascript jquery fade-in/fadeout loop,如何使用计时器
Javascript jquery fade-in/fadeout loop, how to use timer?
javascript等的新手,尝试使用jquery为淡入淡出的徽标创建一个循环。
我已经让它在他们之间循环了。但我试图使循环连续;这样当它到达最后一个徽标时,它就会回到开头,方法是每次到达最后一个徽标时将我的 for-counter 重置为 0。这导致了一个无限循环,我认为这让我的浏览器崩溃了。所以我做了一个快速的谷歌,发现了window.setInterval(...) 定时器功能。
我的问题是,现在触发循环代码依赖于计时,我无法弄清楚如何计算间隔时间。作为参考,以下是淡入和淡出徽标的代码(在尝试循环之前):
$(document).ready(function (){
var fadeDuration = 1000;
var timeBetweenFade = 2000;
var totalTimePerChange = fadeDuration + timeBetweenFade;
var totalLogos = $('.logo').length;
var currentLogo;
var i;
for(i = 0; i < totalLogos; i++)
{
currentLogo = "#img" + i;
if(i == 0){
$(currentLogo).fadeIn(fadeDuration).delay(timeBetweenFade).fadeOut(fadeDuration);
}
else{ //general case
$(currentLogo).delay(totalTimePerChange * i).fadeIn(fadeDuration).delay(timeBetweenFade).fadeOut(fadeDuration);
}
}
});
我试图通过几种方式获得一个完整循环的时间:
$(document).ready(function (){
//..declarations..
window.setInterval( function() {
//..FOR LOOP HERE..
}, i*(fadeDuration + timeBetweenFade + fadeDuration));
});
//I also tried..
$(document).ready(function (){
//..declarations..
var timeTakenToLoop;
var startLoopTime;
window.setInterval( function() {
startLoopTime = new Date().getTime();
//...FOR LOOP HERE..
timeTakenToLoop = new Date().getTime() - startLoopTime;
}, timeTakenToLoop);
});
但是在这两种情况下,我都会得到徽标开始重叠,因为函数调用时间错误。有经验的人可以建议最好的方法是什么吗?
哦,以防万一有人需要它来理解javascript,这里是匹配的html。
<div id="img0" class="logo">
<img src="{% static "CSS/Images/phone_icon.gif" %}"/>
</div>
<div id="img1" class="logo">
<img src="{% static "CSS/Images/email_icon.gif" %}"/>
</div>
<div id="img2" class="logo">I can fade too</div>
简单的jQuery方法,没有setTimeout
也没有setInterval
。
var loop = function(idx, totalLogos) {
var currentLogo = "#img" + idx;
$(currentLogo)
.delay(currentLogo)
.fadeIn(fadeDuration)
.delay(currentLogo)
.fadeOut(fadeDuration, function(){
loop( (idx + 1) % totalLogos, totalLogos);
});
}
loop(0, $('.logo').length);
在这里看到它。
相关文章:
- 在多个警报和提示后面使用计时器
- 使用计时器上的图像构建内存
- JQuery 使用计时器在 for 循环中更改 CSS
- JavaScript使用计时器和不透明度通过淡入淡出缓慢更改图像
- 如何使用计时器在图像之间切换?(设置间隔)
- Javascript jquery fade-in/fadeout loop,如何使用计时器
- 使用计时器在倒计时后关闭窗口
- 使用计时器制作图像幻灯片
- 我在IE移动版中使用计时器时收到[对象错误]
- jQuery - 使用计时器更改类
- 如何使用计时器指令在angularjs中进行倒计时
- 如何使用计时器设置循环,该计时器发出 ajax 请求,直到达到响应
- 在延迟/承诺实现中使用计时器是一种罪恶
- 使用计时器自动提交表单
- 如何在javascript中使用计时器
- 听众被重复添加,但可以'我不知道怎么做.I'm使用one(),然后使用计时器在每次单击时重新启用它
- 使用计时器断开循环
- 使用计时器触发一个jquery函数
- 使用计时器异步运行
- 在JS中使用计时器和进度条