选项卡自动切换(定时器demo)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>选项卡自动切换</title>
    <style>
    body{ background: #fff; font: 14/1.4 "Microsoft Yahei";}
    ul{ padding: 0; margin: 0;}
    li{ list-style: none;}
    #box{ width: 400px; height: 300px; margin: 0 auto; background: #eee url(img/loader_ico.gif) no-repeat center; position: relative; }
    #box img{ width: 400px; height: 300px;}
    #box ul{ position: absolute;}
    #box li{ float: left; margin-right: 10px; width: 40px; height: 40px; margin-bottom: 5px; background: #ccc; cursor: pointer;}
    #box li.active{ background: #f60;}
    #box p ,#box span{ position: absolute; left: 0; width: 400px; height: 30px; line-height: 30px; text-align: center; color: #fff; background: rgba(0,0,0,.4);}
    #box span{ top: 0;}
    #box p{ bottom: 0; margin: 0;}
    </style>
</head>
<body>
    <div id="box">
        <img src="" alt="">
        <span>数量正在加载中……</span>
        <p>文字说明正在加载中……</p>
        <ul>
        </ul>
    </div>
    <script>
    window.onload = function(){
        
        var oDiv = document.getElementById('box');
        var oImg = oDiv.getElementsByTagName('img')[0];
        var oSpan = oDiv.getElementsByTagName('span')[0];
        var oP = oDiv.getElementsByTagName('p')[0];
        var oUl = oDiv.getElementsByTagName('ul')[0];
        var aLi = oUl.getElementsByTagName('li');
        var arrUrl = ['img/1.png','img/2.png','img/3.png','img/4.png'];
        var arrText = ['图片一','图片二','图片三','图片四'];
        var num = 0;
        var timer = null;

        // 动态创建生成所有的li
        for (var i = 0; i < arrUrl.length; i++) {
            oUl.innerHTML += '<li></li>'
        };

        // 初始化
        function init(){
            oImg.src = arrUrl[num];
            oSpan.innerHTML = 1 + num + '/' + arrUrl.length;
            oP.innerHTML = arrText[num];

            // 清空所有li的class,当前添加class
            for(var i = 0; i < arrUrl.length; i++){
                aLi[i].className = '';
            }
            aLi[num].className = 'active';
        };

        // 函数调用
        init();

        // 点击切换图片
        for(var i = 0; i < aLi.length; i++){
            aLi[i].index = i;
            aLi[i].onclick = function(){
                // 将当前索引赋给num
                num = this.index;
                init();
            };
        }

        // 自动播放函数
        function autoPlay(){
            // 通过定时器改变num实现循环播放
            timer = setInterval(function(){
                num ++;
                num %= arrUrl.length;
                init();
            },2000);
        };
            
        // 函数调用,立即自动播放
        autoPlay();

        // 设置一个定时器,2s后自动播放
        // setTimeout(autoPlay,2000);

        // 鼠标移入,清空定时器
        oDiv.onmouseover = function(){
            clearInterval(timer);
        };

        // 鼠标移开,开启定时器,再次自动播放
        oDiv.onmouseout = function(){
            autoPlay();
        };
    };
    </script>
</body>
</html>

 

posted @ 2015-12-04 15:15  波克比520  阅读(636)  评论(0编辑  收藏  举报