重构jQuery以淡出并阻止其崩溃浏览器
refactor jQuery to fade and stop it from crashing browser
这个js可以工作,但过了一段时间,它会崩溃任何打开的浏览器。我必须关闭一些循环吗?
我还想将幻灯片效果更改为淡入/淡出(只是替换.slideDown并不能做到这一点)。想法?
function ticker() {
$('#jsTicker li:first').slideUp(function() {
$(this).appendTo($('#jsTicker')).slideDown(1500);
});
}
setInterval(ticker, 6000);
http://jsfiddle.net/KevinOrin/Zh3wU/
setInterval
基本上是一个无限循环。
您当前的功能不会等到slideUp完成后再重新启动。
用setTimeout
试试这个:
(function() {
var tickerTimer;
function ticker() {
clearTimeout(tickerTimer);
$('#jsTicker li:first').slideUp(function() {
$(this).appendTo($('#jsTicker')).slideDown(1500, function(){
tickerTimer = setTimeout(ticker, 6000);
});
});
}
tickerTimer = setTimeout(ticker, 6000);
})();
不要使用setInterval()
。您没有考虑动画的异步行为。
使用setTimeout()
,尝试以下操作
function ticker() {
$('#jsTicker li:first').slideUp(function() {
$(this).appendTo($('#jsTicker')).slideDown(1500, function() {
setTimeout(ticker, 4500);
});
});
}
setTimeout(ticker, 6000);
相关文章:
- location.reload(true)崩溃浏览器选项卡
- 为什么这个For循环会使浏览器实验室崩溃
- 脸书's的inApp浏览器在尝试上传表单中的照片时崩溃
- 为什么这会造成一个无休止的循环并使我的浏览器崩溃
- jQuery文件上传崩溃的浏览器
- javascript audio currentTime使一些浏览器崩溃
- 在浏览器崩溃之前检测到内存耗尽
- 浏览器11上的Javascript location.href崩溃
- Javascript游戏与循环崩溃浏览器
- 输入输入前浏览器崩溃
- 写得不好的jQuery正在崩溃浏览器
- Ajax 自动完成冻结/崩溃浏览器
- 简单Greasemonkey脚本崩溃浏览器
- 重构jQuery以淡出并阻止其崩溃浏览器
- 为什么这个崩溃浏览器选项卡
- Javascript和细分,在for循环中崩溃浏览器
- 桌面图像拖放上传崩溃浏览器
- 可处理的更新单元格崩溃浏览器
- 简单的页面崩溃浏览器
- ASP.NET 中的角崩溃浏览器