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

为什么使用小圆点切换几次图片后,图片出现的不对呢,比如点击第一个小圆点却出现了第三张图片,开始点击的几次是正常的

<!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: 800px; border: 3px solid #333; overflow: hidden; position: relative;margin: 0 auto;}

        #list { width: 4200px; height: 800px; 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: 380px; 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>

</head>

<body>


<div id="container">

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

    <img src="img/05.jpeg" alt="1"/>

    <img src="img/01.jpeg" alt="1"/>

    <img src="img/02.jpeg" alt="2"/>

    <img src="img/03.jpeg" alt="3"/>

    <img src="img/04.jpeg" alt="4"/>

    <img src="img/05.jpeg" alt="5"/>

    <img src="img/01.jpeg" alt="5"/>

</div>

<div id="buttons">

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

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

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

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

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

</div>

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

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

</div>


<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 interval = 6000;

    var timer;


    function animate(offset){

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

    var animated = true;

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

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

    var speed = offset/(time/interval);  //每次位移量


    function go(){

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

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

    setTimeout(go,interval);

    }else{

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


    if(left > -600){


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

    }


    if(left < -3000){


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

    }

    animated = false;

    }

    }

    go();

    }


    function showButton(){

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

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

    buttons[i].className='';

    break;

    }

    }


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

    }


    function play(){

    timer=setTimeout(function(){

    next.onclick();

    play();

    },interval)

    }


    function stop(){

    clearTimeout(timer);

    }


    next.onclick = function(){


    if (animated) {

                    return;

                }


                if (!animated) {

    animate(-600);

                }


    if(index == 5){

    index = 1;

    }else{

    index += 1;

    }


    showButton();

    console.log(index);

        }


        prev.onclick = function(){

        if (animated) {

                    return;

                }


                if (!animated) {

    animate(600);

                }


    if(index == 1){

    index = 5;

    }else{

    index -= 1;

    }


    showButton();

        }


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

        buttons[i].onclick = function(){

        if (animated) {

                        return;

                    }

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

                        return;

                    }


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

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

        if (!animated) {

animate(offset);

}


        index = myIndex;

        showButton();

        }

        }


    container.onmouseover = stop;

    container.onmouseout = play;

    play();


}


</script>


</body>

</html>


正在回答

1 回答

    next.onclick = function(){


    if (animated) {

                    return;

                }


                if (!animated) {

    animate(-600);

                }


    if(index == 5){

    index = 1;

    }else{

    index += 1;

    }


    showButton();

    console.log(index); //删掉这一行

        }


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

举报

0/150
提交
取消

为什么使用小圆点切换几次图片后,图片出现的不对呢,比如点击第一个小圆点却出现了第三张图片,开始点击的几次是正常的

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