这是我要完成的:当最后一张幻灯片到达fadeOut最后一张幻灯片,然后淡入第一张幻灯片,然后clearInterval(一切适用于此部分).现在我的问题是,如果它不存在,我想再setInterval,但我不知道如何使它发生:(我已经尝试解决这个,如果statment,但我的脚本根本不工作!如何重新启动我的间隔再次?谢谢你,如果没有这样的声明它工作正常:
if(!intervalID){ intervalID = setInterval(animate,5000); }
这是我到目前为止
$(document).ready(function() { /*check if intervalID don't exists messes UP!!*/ if (!intervalID) { intervalID = setInterval(animate,5000); } //Hide everything except first slide and controls $('.slidewrap div:not(.slidewrap div:first,.slidewrap .slide_controls)').hide(); var animate = function() { /*if .pagination_active is last removeClass and addClass to .pagination_active first li tag*/ if ($('.pagination_active').is($('.slide_controls ul li:last'))) { $('.pagination_active').removeClass('pagination_active'); $('.slide_controls ul li:first').addClass('pagination_active'); } else { $('.pagination_active').removeClass('pagination_active').next().addClass('pagination_active'); } /*if div.active is last fadeOut and add .active class to the first div and fadeIn FirsT div then CLEAR INTERVAL and set intervalID to zero */ if ($('.active').is($('.slidewrap div:last'))) { $('.active').fadeOut(1000).removeClass('active'); $('.slidewrap div:first').addClass('active').fadeIn(1000,function() { clearInterval(intervalID); intervalID = 0; }); } //OR .active fadeOut and next div fadeIn else { $('.active').fadeOut(1000).next().fadeIn(1000,function() { $('.slidewrap div.active').removeClass('active').next('div').addClass('active'); }); } } var intervalID; intervalID = setInterval(animate,3000); });
解决方法
清除一段时间后,您需要再次使用setInterval()启动它.
最好为你的setInterval()
var intervalID = null; function intervalManager(flag,animate,time) { if(flag) intervalID = setInterval(animate,time); else clearInterval(intervalID); }
这里flag是一个值为true / false的布尔变量. true将执行setInterval(),false将clearInterval();
现在,您可以根据需要使用上述功能.
例如:
intervalManager(true,300); // for setInterval intervalManager(false); // for clearInterval
原文地址:https://www.jb51.cc/js/150089.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。