jquery背景轮换问题?求解!

a756375788 2013-06-22 06:04:53
正在写一个背景轮换的功能,自动播放,上一张,下一张这三个功能都实现了,但是还有一个功能没能实现,请各位大侠帮忙:问题如下:

当我点击下一张或者上一张图片的时候,背景自动播放时间从0开始(自动播放时间我设置为3秒),也就是我点击下一张图片的时候,过三秒后再更换背景图;
而不是接我点击前的时间(现在遇到的问题就是,我在第2秒点击下一张的时候,1秒后它就又更换背景了,我需要的是同样3秒后才更换背景

我的代码如下:


$(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);
}
})
...全文
232 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011116061 2013-06-23
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
很简单的,在你每个click事件里,增加一个clearInterval(setin) 和一个setin=setInterval(show_bg,time_1);就可以了
a756375788 2013-06-23
  • 打赏
  • 举报
回复
引用 3 楼 chinmo 的回复:
很简单的,在你每个click事件里,增加一个clearInterval(setin) 和一个setin=setInterval(show_bg,time_1);就可以了
哈哈,果然行啦,谢谢你。 额,我之前也用过这个方法,但是我加的是clearInterval(setin)和setInterval(show_bg,time_1); 原来要setin=setInterval(show_bg,time_1);这样才行啊,受教了!
a756375788 2013-06-22
  • 打赏
  • 举报
回复
引用 1 楼 blackchef 的回复:
点击的时候用clearInterval把之前发起的interval清掉。在点击函数的最后再重新发起一个interval
请问要怎么清除掉呢,我试过了好些方法,都行不通! 都有bug。。 你能把写法写出来吗?
blackchef 2013-06-22
  • 打赏
  • 举报
回复
点击的时候用clearInterval把之前发起的interval清掉。在点击函数的最后再重新发起一个interval

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧