横向轮播图的封装

本人原生手写的封装!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>横向轮播图的封装</title>
    <style>
        *{margin: 0;padding: 0;}
        a{text-decoration: none;}
        .container{
            position: relative;
             1800px;
            height: 400px;
            margin:100px auto 0 auto;
            /* background-color: pink; */
            box-shadow: 0 0 5px green;
            overflow: hidden;
        }
        .wrap{
            position: absolute;
             4270px;
            height: 300px;
            z-index: 1;
            margin-top: 50px;
        }
        .img{
            float: left;
             600px;
            height: 300px;
            font-size: 100px;
            line-height: 300px;
            text-align: center;
            margin-left: 10px;
        }
        .arrow{
            position: absolute;
            font-size: 50px;
            border-radius: 50%;
            top: 40%;
            z-index: 2;
            padding:0px 14px;
            color: red;
            background-color: rgba(0,0,0,0.2);
        }
        .arrow_left{
            left: 10px;
        }
        .arrow_right{
            right: 10px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="wrap" style="left: -600px;">
            <div class="img" style="background: cyan;">5</div>
            <div class="img" style="background: red;">1</div>
            <div class="img" style="background: orange;">2</div>
            <div class="img" style="background: yellow;">3</div>
            <div class="img" style="background: green;">4</div>
            <div class="img" style="background: cyan;">5</div>
            <div class="img" style="background: red;">1</div>
        </div>
        <a href="javascript:;" class="arrow arrow_left"><</a>
        <a href="javascript:;" class="arrow arrow_right">></a>
    </div>
</body>
<script>
    var wrap = document.querySelector('.wrap');
    var prev = document.querySelector('.arrow_left')
    var next = document.querySelector('.arrow_right');
    // console.log(wrap, prev, next);

    prev.onclick = function () {
        console.log('左');
        prev_pic();
    }
    next.onclick = function () {
        console.log('右');
        next_pic();
    }

    // 点击下一张
    function next_pic () {
        var newLeft;
        if(wrap.style.left === "-2400px"){
            newLeft = 0;
        }else{
            newLeft = parseInt(wrap.style.left)-600;
        }
        wrap.style.left = newLeft + "px";
        console.log(wrap.style.left);
    }
    // 点击上一张
    function prev_pic () {
        var newLeft;
        if(wrap.style.left === "0px"){
            newLeft = -2400;
        }else{
            newLeft = parseInt(wrap.style.left)+600;
        }
        wrap.style.left = newLeft + "px";
        console.log(wrap.style.left);
    }

    // 希望轮播图自动播放
    var timer = null;
    function autoPlay () {
        timer = setInterval(function () {
            next_pic();
        }, 1000)
    }
    autoPlay();

    // 如果想要仔细看其中一个图片的时候,希望轮播图停止播放,只要clearInterval()即可
    var container = document.querySelector('.container');
    container.onmouseenter = function () {
        clearInterval(timer);
    }
    container.onmouseleave = function () {
        autoPlay();
    }
</script>
</html>

  

原文地址:https://www.cnblogs.com/wufenfen/p/13842744.html