前端开发之js基础(7)

版权声明:版权所有,如需引用,请注明出处! https://blog.csdn.net/DHRMM999/article/details/82468076

js实现轮播动画

css代码`

<style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            li{
                list-style: none;
            }
            img{
                vertical-align: middle;/*去除图片底部三像素空白*/
            }
            #box{
                width: 490px;
                height: 170px;
                margin: 100px auto;
                position: relative;
                overflow: hidden;
            }
            #box ul{
                width: 2450px;
                position: absolute;
                top: 0;
                left: 0;
            }
            #box ul li{
                float: left;
            }
            #square{
                width: 200px;
                height: 30px;
                position: absolute;
                bottom: 10px;
                left: 30%;
            }
            #square span{
                width: 16px;
                height: 16px;
                line-height: 16px;
                display: inline-block;
                background: white;
                padding: 5px;
                margin-left: 10px;
                cursor: pointer;
            }
            #square span.active{
                background: pink;
            }
        </style>

html代码

<body>
        <div id="box">
            <ul>
                <li><a href="#"><img src="../images/01.jpg" alt="" /></a></li>
                <li><a href="#"><img src="../images/02.jpg" alt="" /></a></li>
                <li><a href="#"><img src="../images/03.jpg" alt="" /></a></li>
                <li><a href="#"><img src="../images/04.jpg" alt="" /></a></li>
                <li><a href="#"><img src="../images/05.jpg" alt="" /></a></li>
            </ul>
            <div id="square">
                <span class="active">1</span>
                <span>2</span>
                <span>3</span>
                <span>4</span>
                <span>5</span>
            </div>
        </div>
    </body>

js代码

<script type="text/javascript">
        var box = document.getElementById("box");
        var ullist = document.getElementsByTagName("ul")[0];
        var square =box.children[1];
        var span = box.children[1].children;
        //得到ul宽度
        var scrolllWidth = box.offsetWidth;
        for(var i=0;i<span.length;i++){
            span[i].index = i;//获得当前索引号
            span[i].onmousemove = function(){
                for(var j=0;j<span.length;j++){
                    span[j].className = "";
                }
                this.className = "active";
                banner(ullist,-this.index*scrolllWidth);
            }
        }

        //封装轮播
        function banner(obj,target){
            clearInterval(obj.timer);//开启定时器清除以前的定时器
            //如果offsetwidth大于target位置,就反方向
            var speed = obj.offsetLeft<target? 15:-15;
            obj.timer =setInterval(function(){
                var result = target-obj.offsetLeft;
                obj.style.left = obj.offsetLeft+speed+"px";
                if(Math.abs(result)<=15){
                    obj.style.left = target+"px";
                    clearInterval(obj.timer);
                }
            },50);
        }
    </script>

猜你喜欢

转载自blog.csdn.net/DHRMM999/article/details/82468076