原生js轮播图

JavaScript

原生js

轮播图

 <script>
        // 1. 获取元素 ul spans lis
        var ul = document.getElementsByTagName('ul')[0];
        var spans = document.getElementsByTagName('span');
        var lis = document.getElementsByTagName('li');

        // 2. 不知道是第几张图 假设
        var n = 0;
        var liw = parseInt(getstyle(lis[0], 'width'));
        console.log(liw);

        // 3. 每隔3s
        var t = setInterval(auto, 3000);

        function auto(){
            // 0-->1-->2
            n++;
            // 3.1 判断 
            if(n == 5){ 
                n = 0;
                // 一瞬间拉回第一张
                ul.style.left = n * -liw + 'px';
                // 为了停留2个时长
                n = 1;
            };
            if(n == -1){
                n = 4;
                // 一瞬间拉回最后一张
                ul.style.left = n * -liw + 'px';
                n = 3;
            }
            // 4. 设置ul的left
            // ul.style.left = n * -liw + 'px';
            move(ul, 'left', 50, n * -liw);
            // 5. 改变span的样式
            // 5.1 清除所有的spans的样式
            for(var i = 0; i < spans.length; i++){
                spans[i].className = '';
            }
            // 5.2 指定下标的span 设置上样式 
            spans[n == 4 ? 0 : n].className = 'active';
        }

        // 划上清除
        var div = document.getElementsByTagName('div')[0];
        div.onmouseenter = function(){
            clearInterval(t);
        }
        // 划下重新开启
        div.onmouseleave = function () {
            t = setInterval(auto, 3000);
        };
        // 左箭头
        var btns = document.getElementsByTagName('button');
        btns[0].onclick = function () {
            n -= 2;
            auto();
        };
        // 右箭头
        btns[1].onclick = function () {
            auto();
        };

        // 小圆点
        for(var j = 0; j < spans.length; j++){
            spans[j].index = j;
            spans[j].onclick = function () {
                n = this.index - 1;
                auto();
            };
        }
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值