为了账号安全,请及时绑定邮箱和手机立即绑定

单独点击圆点按钮和左右按钮不会出问题,先点圆点按钮再点左右按钮就会出问题?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>焦点轮播图</title>

<style type="text/css">

        *{ margin: 0; padding: 0; text-decoration: none;}

        body { padding: 20px;}

        #container { width: 600px; height: 400px; border: 3px solid #333; overflow: hidden; position: relative;}

        #list { width: 4200px; height: 400px; position: absolute; z-index: 1;}

        #list img { float: left;}

        #buttons { position: absolute; height: 10px; width: 100px; z-index: 2; bottom: 20px; left: 250px;}

        #buttons span { cursor: pointer; float: left; border: 1px solid #fff; width: 10px; height: 10px; border-radius: 50%; background: #333; margin-right: 5px;}

        #buttons .on {  background: orangered;}

        .arrow { cursor: pointer; display: none; line-height: 39px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 40px;  position: absolute; z-index: 2; top: 180px; background-color: RGBA(0,0,0,.3); color: #fff;}

        .arrow:hover { background-color: RGBA(0,0,0,.7);}

        #container:hover .arrow { display: block;}

        #prev { left: 20px;}

        #next { right: 20px;}

    </style>

    <script type="text/javascript">

     window.onload=function(){

     var container=document.getElementById('container');

     var list=document.getElementById('list');

     var buttons=document.getElementById('buttons').getElementsByTagName('span');

     var prev=document.getElementById('prev');

     var next=document.getElementById('next');

     var index=1;

     var animated=false;

     var timer;

     function animate(offset){

     if(offset==0){

     return;

     }

     animated=true;

     var newLeft=parseInt(list.style.left)+offset;

     var time=300;//位移总时间

     var interval=10;//位移间隔时间

     var speed=offset/(time/interval);//位移距离/位移次数


     function go(){

     if((speed<0&&parseInt(list.style.left)>newLeft)||(speed>0&&parseInt(list.style.left)<newLeft)){

     list.style.left=parseInt(list.style.left)+speed+'px';

     setTimeout(go,interval);

     }else{

     animated=false;

     list.style.left=newLeft+'px';

    if(newLeft>-600){

    list.style.left=-3000+'px';

    }

    if(newLeft<-3000){

    list.style.left=-600+'px';

    }

     }

     }

     go();

     

     }

     function play(){

     timer=setInterval(function(){

     next.onclick();

     },3000);

     }

     function stop(){

     clearInterval(timer);

     }

     function showButton(){

     for (var i = 0; i < buttons.length; i++) {

     if(buttons[i].className=='on'){

     buttons[i].className='';

     break;

     }

     }

     buttons[index - 1].className = 'on';

     }

     next.onclick=function(){

     if(index==5){

     index=1;

     }else{

     index+=1;

     }

     

     if(!animated){

animate(-600);

     }

     showButton();

     

     }

     prev.onclick=function(){

     if(index==1){

     index=5;

     }else{

     index-=1;

     }

     showButton();

     if(!animated){

animate(600);

     }

     }

     for (var i = 0; i < buttons.length; i++) {

     buttons[i].onclick=function(){

     if(this.className=='on'){

     return;

     }

     var myIndex=this.getAttribute('index');

     var offset=-600*(myIndex-index);

     animate(offset);

     index=myIndex;

     showButton();


     }

     }

     container.onmouseover=stop;

     container.onmouseout=play;

     play();

     }

    </script>

</head>

<body>

<div id="container">

    <div id="list" style="left: -600px;">

        <img src="img/5.jpg" alt="1"/>

        <img src="img/1.jpg" alt="1"/>

        <img src="img/2.jpg" alt="2"/>

        <img src="img/3.jpg" alt="3"/>

        <img src="img/4.jpg" alt="4"/>

        <img src="img/5.jpg" alt="5"/>

        <img src="img/1.jpg" alt="5"/>

    </div>

    <div id="buttons">

        <span index="1"></span>

        <span index="2"></span>

        <span index="3"></span>

        <span index="4"></span>

        <span index="5"></span>

    </div>

    <a href="javascript:;" id="prev">&lt;</a>

    <a href="javascript:;" id="next">&gt;</a>

</div>

</body>

</html>


正在回答

1 回答

myIndex=this.getAttribute('index')  写成myIndex=parseInt(this.getAttribute('index'))就可以了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

单独点击圆点按钮和左右按钮不会出问题,先点圆点按钮再点左右按钮就会出问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信