js 小案例 跑马灯效果

2023年6月17日11:09:40

俗话说:‘能用css解决的动画,绝不用js来实现’

下面是利用 css中的 animation 实现跑马灯效果

这个我采了坑 ,to {left:1500px},这里的距离是所有图片的宽度(不包含无缝复制的哈)

    我一直设置的是container 一屏的宽度,一直不流畅。所以在此纪录下。

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>京东跑马灯</title>
    <style>
        .container {
            box-sizing: border-box;
            overflow: hidden;
            position: relative;
            width: 1000px;
            height: 200px;
            margin: 50px auto 0px;
            border: 1px solid red;
        }

        .container .wrapper {
            position: absolute;
            top: 0px;
            left: 0px;
            box-sizing: border-box;
            width: 2200px;
            height: 200px;
        }

        .container .wrapper .slider {
            box-sizing: border-box;
            float: left;
            width: 200px;
            height: 200px;
            padding: 10px 20px;
        }

        .container .wrapper .slider span {
            display: block;
            /* 不换行三件套 */
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .container .wrapper .slider img {
            width: 150px;
            height: 150px;
        }
        .container .wrapper  {
            animation: test 5s infinite linear;
        }
        @keyframes test {
            from  {
                left: 0px;
            }
            to {
                left: -1200px;
            }
        }
        .container:hover .wrapper {
            animation-play-state: paused;
        }
       

    </style>
</head>

<body>
    <div class="container ">
        <div class="wrapper ">
            <!-- 每一张图片slider -->
            <div class="slider">
                <span>天地壹号 清爽酸甜 苹果醋22222222222</span>
                <img src="./img/2.jpg" alt="js 小案例 跑马灯效果">
            </div>
            <div class="slider">
                <img src="./img/3.jpg" alt="js 小案例 跑马灯效果">
                <span>天地壹号 清爽酸甜 苹果醋</span>
            </div>
            <div class="slider">
                <span>天地壹号 清爽酸甜 苹果醋</span>
                <img src="./img/4.jpg" alt="js 小案例 跑马灯效果">
            </div>
            <div class="slider">
                <img src="./img/5.jpg" alt="js 小案例 跑马灯效果">
                <span>天地壹号 清爽酸甜 苹果醋</span>
            </div>
            <div class="slider">
                <img src="./img/6.jpg" alt="js 小案例 跑马灯效果">
                <span>天地壹号 清爽酸甜 苹果醋</span>
            </div>
            <div class="slider">
                <img src="./img/7.jpg" alt="js 小案例 跑马灯效果">
                <span>天地壹号 清爽酸甜 苹果醋</span>
            </div>
            <!-- 无缝的 -->
            <div class="slider">
                <span>天地壹号 清爽酸甜 无缝的苹果醋</span>
                <img src="./img/2.jpg" alt="js 小案例 跑马灯效果">
            </div>
            <div class="slider">
                <img src="./img/3.jpg" alt="js 小案例 跑马灯效果">
                <span>天地壹号 清爽酸甜 苹果醋</span>
            </div>
            <div class="slider">
                <span>天地壹号 清爽酸甜 苹果醋</span>
                <img src="./img/4.jpg" alt="js 小案例 跑马灯效果">
            </div>
            <div class="slider">
                <img src="./img/5.jpg" alt="js 小案例 跑马灯效果">
                <span>天地壹号 清爽酸甜 苹果醋</span>
            </div>
        </div>
    </div>
</body>

</html>

当然你也可以使用js代码实现哦!html和css是一样的

     var wrapper = document.querySelector('.wrapper'),
            timer = null,
            step = -10,
            left = 0;
        window.onload = function () {
            timer = setInterval(autoMove, 100)
        }
        function autoMove() {
            left = getCss(wrapper, 'left');
            left += step
            if (left < -1200) {
                wrapper.style.left = 0 + 'px';
                wrapper.style.transition = 'all 0s'
                left = getCss(wrapper, 'left');
            }
            console.log(left);
            wrapper.style.left = left + 'px';
            wrapper.style.transition = 'all .3s'
        }
        function getCss(culEle, attr) {
            return parseFloat(window.getComputedStyle(culEle, null)[attr]);
        }

  • 作者:make sense
  • 原文链接:https://blog.csdn.net/baidu_41861751/article/details/120516700
    更新时间:2023年6月17日11:09:40 ,共 2273 字。