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

焦点图轮播 鼠标离开后图片混乱播放

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{margin:0;
            padding:0;
            list-style:none;}
        .wrap{height:170px;
            width:490px;
            overflow: hidden;
            position: relative;
            margin:100px auto;}

        .wrap ul li img{height:170px;width: 100%}
        .wrap ol{position:absolute;
            right:5px;
            bottom:10px;}
        .wrap ol li{height:20px; width: 20px;
            background:#ccc;
            border:solid 1px #666;
            margin-left:5px;
            color:#000;
            float:left;
            line-height:20px;
            text-align:center;
            cursor:pointer;}
        .wrap ol .on{background:#E97305;
            color:#fff;}

    </style>
    <script type="text/javascript">
        window.onload=function(){
            var wrap=document.getElementById('wrap');
                    pic=document.getElementById('pic');
                    img=pic.getElementsByTagName("img");
                    list=document.getElementById('list').getElementsByTagName('li');
                    index=0;
                    timer=null;
            if (timer) {
                clearInterval(timer);
                timer = null;
            }
            // 定义并调用自动播放函数
 timer=setInterval(function(){autoPlay()},2000);
            function autoPlay(){
                index++;
                if(index>=list.length){index=0}
                changOption(index);
            }
        // 鼠标划过整个容器时停止自动播放
 wrap.onmouseover=function(){
                clearInterval(timer);
            };
        // 鼠标离开整个容器时继续播放至下一张
 wrap.onmouseout=function () {
                setInterval(function(){autoPlay()},2000);
            };
        // 遍历所有数字导航实现划过切换至对应的图片
 for (var i = 0; i < list.length; i++) {
                list[i].aa = i;
                list[i].onmouseover = function () {
                    changOption(this.aa);
                };
                list[i].onmouseout = function () {
                    setInterval(function () {
                        autoPlay()}, 2000);
                }
            }
            function changOption(currIndex){
                if (timer) {
                    clearInterval(timer);
                    timer = null;
                }
                for (var j = 0; j < list.length; j++) {
                    list[j].className = "";
                    img[j].style.display = "none";
                }
                list[currIndex].className = "on";
                img[currIndex].style.display = "block";
                index=currIndex;
            }
        }

    </script>
</head>
<body>
<div class="wrap" id='wrap'>
    <ul id="pic">
        <li><img src="http://img1.sycdn.imooc.com//54111cd9000174cd04900170.jpg" alt=""></li>
        <li><img src="http://img1.sycdn.imooc.com//54111dac000118af04900170.jpg" alt=""></li>
        <li><img src="http://img1.sycdn.imooc.com//54111d9c0001998204900170.jpg" alt=""></li>
        <li><img src="http://img1.sycdn.imooc.com//54111d8a0001f41704900170.jpg" alt=""></li>
        <li><img src="http://img1.sycdn.imooc.com//54111d7d00018ba604900170.jpg" alt=""></li>
    </ul>
    <ol id="list">
        <li class="on">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>
</body>
</html>


正在回答

4 回答

你div都有定时器,还有就是你上面的定时器和下面onmouseout的定时器不是一个,就是说,你一共用了三个= = ,所以你那个使劲跳

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

吃瓜小夏 提问者

真是太感谢你了 !!!
2016-10-27 回复 有任何疑惑可以回复我~

还有一个clearInterval(timer);应该放在onmouseover方法里

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

 window.onload=function(){

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

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

                 var   img=pic.getElementsByTagName("li");

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

                   var index=0;

                   var  timer=null;

            if (timer) {

                clearInterval(timer);

                timer = null;

            }

            // 定义并调用自动播放函数

 

            function autoPlay(){

                index++;

                if(index>=list.length){index=0}

                changOption(index);

            }

timer=setInterval(autoPlay,2000);

        // 鼠标划过整个容器时停止自动播放

 

        // 遍历所有数字导航实现划过切换至对应的图片

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

                list[i].aa = i;

                list[i].onmouseover = function () {

                    changOption(this.aa);

                };

                list[i].onmouseout = function () {

clearInterval(timer);

                  timer=setInterval(autoPlay,2000);

                }

            }

            function changOption(currIndex){

                

                for (var j = 0; j < list.length; j++) {

                    list[j].className = "";

                    img[j].style.display = "none";

                }

                list[currIndex].className = "on";

                img[currIndex].style.display = "block";

                index=currIndex;

            }

        }

 


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

从未见过如此鬼畜的轮播图片(﹁"﹁)

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

举报

0/150
提交
取消

焦点图轮播 鼠标离开后图片混乱播放

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