我正在尝试使用setinterval和jquery来制作简单的滑块。
你可以在这里看看http://jsfiddle.net/5m2Dq/
当Slider在浏览器上处于焦点时,它工作得很好,但当我们转到不同的标签超过5分钟时,所有的div都会出现在彼此的下方,并开始切换。
$('#fbLoginSlide div:gt(0)').hide();
setInterval(function(){
$('#fbLoginSlide :eq(0)').fadeOut('slow').hide()
.next('div.loginSlide').fadeIn('slow')
.end().appendTo('#fbLoginSlide');
},2000);
有没有一种简单的方法来达到这样的滑动效果,而不需要任何插件。
发布于 2011-10-31 06:33:43
这可能是因为您的浏览器开始丢失超时。特别是当您正在查看另一个选项卡时,浏览器会认为恰好以2秒为间隔调用回调并不重要。你应该完全抛弃setInterval函数!使用fadeOut和fadeIn的完成回调触发特效。
试试像这样的东西
var cycle = function() {
$('#fbLoginSlide :eq(0)').fadeOut('slow').hide()
.next('div.loginSlide').fadeIn('slow', function() { setTimeout(cycle, 1500); })
.end().appendTo('#fbLoginSlide');
};
cycle();
https://stackoverflow.com/questions/7950543
复制