-淘宝-首页轮播-4.0 最终版

5 篇文章 0 订阅
2 篇文章 0 订阅

-淘宝-首页轮播-4.0 最终版

body里

<div id="box">
        <div class="player"></div>
        <div class="control">
            <span class="s"></span>
            <span></span>
            <span></span>
            <span></span>
        </div>
    </div>
    <script src="/js/jquery-3.2.1.min.js"></script>
    <script>
        //模拟数据
        let as = [], index = 0, timer;
        // ajax 远程拉取数据
        $.getJSON("https://www.easy-mock.com/mock/5d2fd2096736a5487dce55e3/list", {}, function (obj) {
            // 将模拟数据转换为页面标签元素
            obj.data.items.forEach(function (e, i) {
                var item = `<a href="${e.href}"><img src="${e.imgUrl}" /></a>`;
                if (i == 0) {
                    as.push(item);
                    as.push(item);
                } else {
                    as.splice(1, 0, item);
                }
            });
            $(".player").html(as.join(""));
        });
        // 封装播放
        function play(tranEnable) {
            if (tranEnable) {
                $(".player").css("transition", "all 0.5s ease");
            } else {
                $(".player").css("transition", "none");
            }
            $(".player").css("transform", `translateX(${-index * 520}px)`);
        }
        // 封装样式切换
        function change() {
            var span = $(".control>span").eq(index);
            span.addClass("s");
            span.siblings(".s").removeClass("s");
        }
        // 封装自动轮播启动函数
        function start() {
            index++;
            timer = setInterval(() => {
                let temp = index;
                index = index >= 4 ? 0 : index;
                change();
                if (temp >= 4) {
                    index = temp;
                    play(true);
                    setTimeout(() => {
                        index = 0;
                        play(false);
                        index++;
                    }, 500);
                } else {
                    play(true);
                    index++;
                }

            }, 3000);
        }
        // 封装自动轮播关闭函数
        function stop() {
            clearInterval(timer);
        }
        // 页面初始化启动自动轮播
        start();
        // 鼠标移至control区域关闭自动轮播,启动手动点击播放
        $(".control").hover(stop, start);
        // 点击control内控制点实现点击播放
        $(".control>span").click(function () {
            index = $(this).index();
            change();
            play(true);
        });
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值