老师问个问题

老师问个问题

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            width: 500px;
            height: 300px;
            margin: 0px auto;
            position: relative;
            overflow: hidden;
        }

        .imgbox {
            width: 3000px;
            position: absolute;
            left: 0;
            transition: all .3s linear 0s;
        }

        img {
            width: 500px;
            height: 300px;
            float: left;
        }

        a {
            position: absolute;
            color: #fff;
            font-size: 20px;
            width: 50px;
            height: 50px;
            top: 50%;
            margin-top: -25px;
            background-color: rgba(109, 107, 107, 0.8);
            text-align: center;
            line-height: 50px;
            text-decoration: none;
        }

        a.right {
            right: 0;
        }

        a.left {
            left: 0;
        }
    </style>
</head>

<body>
    <div id="box">
        <div id="imgbox" class="imgbox">
            <img src="img/1.jpg" alt="">
            <img src="img/2.jpg" alt="">
            <img src="img/3.jpg" alt="">
            <img src="img/4.jpg" alt="">
            <img src="img/1.jpg" alt="">
        </div>
        <a href="#" class="right" id="r">👉</a>
        <a href="#" class="left" id="l">👈</a>
    </div>
</body>
<script>
    var imgbox = document.getElementById('imgbox');
    var imgs = imgbox.querySelectorAll('img');
    var r = document.getElementById('r');
    var l = document.getElementById('l');
    var left = 0;
    var index = 0;
    var lock = true;
    var time;
    //自动轮播
    function fun() {
        clearInterval(time)
        time = setInterval(function () {
            aaa()
        }, 1000)
    }
    fun()
    //鼠标进入移出
    imgbox.onmouseenter = function () {
        clearInterval(time)
    }
    imgbox.onmouseleave = function () {
        fun()
    }
    r.onmouseenter = function () {
        clearInterval(time)
    }
    l.onmouseenter = function () {
        clearInterval(time)
    }
    r.onmouseleave = function () {
        fun()
    }
    l.onmouseleave = function () {
        fun()
    }
    //右按钮
    r.onclick = function () {
        if (!lock) return;
        if (index == 0) {
            imgbox.style.transition = 'none'
            imgbox.style.left = -4 * 500 + 'px'
            index = 4
            setTimeout(function () {
                imgbox.style.transition = 'all .3s linear 0s'
                index--
                imgbox.style.left = -index * 500 + 'px'
            }, 0)
        } else {
            index--
            imgbox.style.left = -index * 500 + 'px'
        }
        lock = false;
        setTimeout(function () {
            lock = true;
        }, 500)
    }
    //左按钮
    var aaa = l.onclick = function () {
        if (!lock) return;
        index++;
        if (index > 3) {
            setTimeout(function () {
                imgbox.style.transition = 'none'
                imgbox.style.left = 0
                index = 0;
            }, 300)
        }
        lock = false;
        imgbox.style.transition = 'all .3s linear 0s'
        imgbox.style.left = index * -500 + 'px'
        setTimeout(function () {
            lock = true;
        }, 500)
    }
</script>

</html>

你好老师,我加了自动轮播的函数,但是要写好几个鼠标进入移出的函数,看着很臃肿的感觉。会有优化的学习吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
慕仙7313728 提问者 2022-05-29 20:58:23

重新提交了一份提问,麻烦老师看另一个,这个就不用回答了。


  • 同学你好,已经在另外一个问题中进行了解答,祝学习愉快!

    2022-05-30 16:51:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师