轮播图练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        *{
            margin: 0%;
            padding: 0%;
        }
        #outer{
            width: 620px;
            height: 400px;
            margin: 50px auto;
            background-color: greenyellow;
            padding: 10px 0;
            position:relative;
            overflow: hidden;
        }
        #imgList{
            list-style: none;
            position: absolute;
            left: 0px;
            
        }
        #imgList li{
            float: left;
            margin: 0 10px;
        }
        #navDiv{
            position: absolute;
            bottom: 15px;
        }
        #navDiv a{
            float: left;
            width: 15px;
            height: 15px;
            margin: 0 5px;
            background-color: red;
            opacity: 0.5;
            border: 0px;
            border-radius: 10px;
        }
        #navDiv a:hover{
            background-color: black;
        }
    </style>
    <!-- 引入工具 -->
    <script src="/tools.js"></script>
    <script type="text/javascript">
        window.onload = function(){
            /*--------------------------------设置imgList的宽度-------------------------*/
            //获取imgLIst
            var imgList = document.getElementById("imgList");
            //获取所有图片
            var imgArr = document.getElementsByTagName("img");
            //设置imgList的宽度
            imgList.style.width = imgArr.length*620+"px";
            /*-------------------------------设置导航按钮居中----------------------------*/
            //获取navDiv
            var navDiv = document.getElementById("navDiv");
            //获取outer
            var outer = document.getElementById("outer");
            //设置navDiv的left值
            navDiv.style.left = (outer.offsetWidth-navDiv.offsetWidth)/2+"px";
            /*-----------------------设置默认超链接的样式------------------------------*/
            //设置默认图片的索引
            var index = 0;
            //定义自动切换的定时器标识
            var timeID;
            //获取所有的a
            var alla = document.getElementsByTagName("a");
            //设置默认选中的效果
            alla[index].style.backgroundColor = "black";
            /*--------------------点击超链接切换到指定的图片-----------------------------*/
            //为所有的超链接绑定单击响应函数
            for(var i=0;i<alla.length;i++){
                //为每一个超链接添加一个num属性
                alla[i].num = i;
                alla[i].onclick = function(){
                    //关闭自动切换的定时器
                    clearInterval(timeID);
                    //获取超链接的索引,并设置为index
                    index = this.num;
                    //切换图片
                    move(imgList,"left",-620*index,200,function(){
                        //动画执行完毕,开始自动切换
                        autoChange();
                    });
                    //使a的颜色改变
                    setA();
                };
            }
            /*-----------------------------------自动切换图片-----------------------------*/
            autoChange();
            /*------------------------创建一个方法用来设置选中的a-------------------------*/
            function setA(){
                //判断index是否为最后一张图片的索引
                if(index > alla.length-1){
                    index = 0;
                    //此时显示的是最后一张图片,而最后一张图片和第一张是一样的
                    //通过CSS将最后一张切换成第一张
                    imgList.style.left = 0;
                }
                //遍历所有的a,并将它们的背景颜色设置为红色          
                for(var i=0;i<alla.length;i++){
                    //因为设置的是内联样式,会覆盖css的hover样式,所以设置为空
                    //此时alla[i]的样式为css样式,即红色
                    alla[i].style.backgroundColor = "";
                }
                //设置选中的a颜色变为黑色
                alla[index].style.backgroundColor = "black";
            }
            /*-------------------------创建一个函数用来开启自动切换图片-----------------------*/
            function autoChange(){
                //开启定时器用来切换图片
                timeID = setInterval(function(){
                    //使索引自增
                    index++;
                    //判断index的值
                    index %= imgArr.length;
                    //执行动画切换图片
                    move(imgList,"left",-620*index,50,function(){
                        //修改导航样式
                        setA();
                    });
                },5000);
            }
        };
    </script>
</head>
<body>
    <!-- 创建一个外部div作为容器 -->
    <div id="outer">
        <!-- 创建一个ul用于放置照片 -->
        <ul id="imgList">
            <li>
                <img src="/火影方块/1.webp" width="600px" height="400px">
            </li>
            <li>
                <img src="/火影方块/2.webp" width="600px" height="400px">
            </li>
            <li>
                <img src="/火影方块/3.webp" width="600px" height="400px">
            </li>
            <li>
                <img src="/火影方块/4.webp" width="600px" height="400px">
            </li>
            <li>
                <img src="/火影方块/5.webp" width="600px" height="400px">
            </li>
            <li>
                <img src="/火影方块/6.webp" width="600px" height="400px">
            </li>
            <li>
                <img src="/火影方块/1.webp" width="600px" height="400px">
            </li>
        </ul>
        <!-- 创建导航按钮 -->
        <div id="navDiv">
            <a href="javascript:;"></a>
            <a href="javascript:;"></a>
            <a href="javascript:;"></a>
            <a href="javascript:;"></a>
            <a href="javascript:;"></a>
            <a href="javascript:;"></a>
        </div>
    </div>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值