jquery背景轮换代码
正在写一个背景轮换的功能,自动播放,上一张,下一张这三个功能都实现了,但是还有一个功能没能实现,请各位大侠帮忙:问题如下:
当我点击下一张或者上一张图片的时候,背景自动播放时间从0开始(自动播放时间我设置为3秒),也就是我点击下一张图片的时候,过三秒后再更换背景图;
而不是接我点击前的时间(现在遇到的问题就是,我在第2秒点击下一张的时候,1秒后它就又更换背景了,我需要的是同样3秒后才更换背景)
我的代码如下:
JavaScript code?$(document).ready(function () { $('.banner').css("backgroundImage","url(images/bg_1.jpg)"); var m=$(".n_m_bn").find("img").length; var t=1; var time_1=3000; function show_bg(){ if(t<m){ t++; var a="url(images/bg_"+t+".jpg)"; $('.banner').css("backgroundImage",a); } else{ t=1; var a="url(images/bg_"+t+".jpg)"; $('.banner').css("backgroundImage",a); } } var setin=setInterval(show_bg,time_1); $("#nextList").click(function(){ if(t<m){ t++; var a="url(images/bg_"+t+".jpg)"; $('.banner').css("backgroundImage",a); } else{ t=1; var a="url(images/bg_"+t+".jpg)"; $('.banner').css("backgroundImage",a); } }) $("#prevList").click(function(){ if(t>1 && t<=m){ t--; var a="url(images/bg_"+t+".jpg)"; $('.banner').css("backgroundImage",a); } else{ t=4; var a="url(images/bg_"+t+".jpg)"; $('.banner').css("backgroundImage",a); } })
点击的时候用clearInterval把之前发起的interval清掉。在点击函数的最后再重新发起一个interval
在你每个click事件里,增加一个clearInterval(setin) 和一个setin=setInterval(show_bg,time_1);就可以了