做js图片定时切换时,自动切换时(2s)正常,但是为什么点击几次向左按钮后,自动切换速度越来越快???

怎么解决啊,新手???下面是代码:<!doctypehtml><html><head><metacharset="utf-8"><title>无标题文档</title><... 怎么解决啊,新手???下面是代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script language="javascript">
var pics=new Array();
var num=0;
var boxs;
for(var i=0;i<5;i++)//给数组赋值
{
pics[i]="images/0"+(i+1)+".jpg";
}

window.onload=Showpic;
function Showpic()//是图片自动2s切换
{
document.getElementById("mypic").src=pics[num];
num++;
if(num>4)
{
num=0;
}
boxs=setTimeout("Showpic()",2000);
}
function ShowLtbtn()//向左按钮
{
clearTimeout(boxs);
num--;
if(num<0)
{
num=4;
}
document.getElementById("mypic").src=pics[num];
box1=setTimeout("Showpic()",3000);
}
function ShowRtbtn()//向右按钮
{
clearTimeout(boxs);
document.getElementById("mypic").src=pics[num];
box2=setTimeout("Showpic()",2000);
}
</script>

<style type="text/css">
*{
margin: 0;
padding: 0;
}
.box{
margin: 0 auto;
width: 800px;
height: 280px;
position: relative;
}
.Ltbtn{
background: #000000 url(images/spirte.png) no-repeat;
height: 100px;
width: 45px;
position: absolute;
top: 90px;
left: 0px;
opacity: 0.4;
filter: alpha(opacity=40);
cursor:pointer;
}
.Rtbtn{
background: #000000 url(images/spirte.png) no-repeat right top;
height: 100px;
width: 45px;
position: absolute;
top: 90px;
right: 0px;
opacity: 0.4;
filter: alpha(opacity=40);
cursor:pointer;
}
</style>
</head>

<body>
<div class="box">
<div>
<img id="mypic" src="images/01.jpg" width="800" height="280" alt=""/>
</div>
<div class="Ltbtn" onClick="ShowLtbtn()">
</div>
<div class="Rtbtn" onClick="ShowRtbtn()">
</div>
</div>

</body>
</html>
展开
 我来答
网海1书生
科技发烧友

2019-04-11 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
一个函数内部如果用setTimeout调用自身,那么在外部调用这个函数时,就不要再用setTimeout了,否则会产生嵌套效应,越来越快。
所以 box1=setTimeout("Showpic()",3000); 改为 Showpic(); 即可
同理,box2=setTimeout("Showpic()",2000); 也要改为 Showpic();
更多追问追答
追问
向右按钮可以实现了,但是向左按钮哪里我要实现的功能是:点击按钮后翻向上一张图片,如果一段时间不按了,则恢复为自动(2s)跳转下一张图片。可是如果将box1直接改为调用函数的话,那点击事件在点击一下后怎么就失效了
追答
向左的话,num不能-1,应该是-2,因为Showpic()中num已经+1了,如果-1的话,就相当于恢复为当前图片,所以是看不到效果的,应该-2
薄中若沙1o
2019-04-11 · TA获得超过446个赞
知道小有建树答主
回答量:405
采纳率:0%
帮助的人:52.3万
展开全部
应该是路径问题。
用 JS 的时候, url() 里的路径应该是相对于 HTML 文件的路径。
用 CSS的时候, url() 里的路径是相对于 CSS 文件的路径。
以上,请采纳,请给分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式