js 小案例 跑马灯效果

首页 / 新闻资讯 / 正文

俗话说:‘能用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]);         }