无缝滚动

2019-12-30  本文已影响0人  吃肉肉不吃肉肉
<div class="container">
        <ul>
            <li>javascript第1章</li>
            <li>javascript第2章</li>
            <li>javascript第3章</li>
            <li>javascript第4章</li>
            <li>javascript第5章</li>
            <li>javascript第6章</li>
            <li>javascript第7章</li>
            <li>javascript第8章</li>
            <li>javascript第9章</li>
            <li>javascript第10章</li>
        </ul>
</div>

设置css样式:

<style>
        *{margin: 0;padding: 0;}
        ul{ list-style: none;}
        li{ 
            line-height: 37px;
            height: 37px;
            border-bottom: 1px solid #f0f0f0;
            }
        .container{
            width: 300px;
            margin: 50px auto;
            border:1px solid red;
            height: 76px;
            /* overflow: hidden; */
        }
        /* 定义向上动画 */
        @keyframes slideUp{
            from{transform:translateY(0)}
            to{ transform:translateY(-38px)}
        }
        /* 通过on 调用动画 */
        .on{
            animation: slideUp 0.5s ease;
        }
    </style>

插入javascript

         //去除 ul的第一个元素节点 放入到ul的最后面  firstElementChild  appendChild
  // 每隔3秒做一次 setInterval
         var ul = document.querySelector(".container ul");
        // 获取到ul
        // ani(animate)执行动画
        function ani(){
            var first = ul.firstElementChild;   
            // 获取到ul的第一个元素
            ul.classList.add("on");
            // 添加一个class on (on会调用slideUp动画,执行动画,500毫秒时间)
            setTimeout(function(){
                ul.appendChild(first);
                // 把第一个元素 放在ul的最后面
                ul.classList.remove("on");
                //  移除on类(下一次调用又可以添加,又可以产生动画)
            },500)
            // 等待500毫秒去执行(动画执行完毕)
        }
        var id = setInterval(ani,3000);
        //每个3秒做一次动画
        
        //鼠标放在container 停止都给你和
        var container = document.querySelector(".container");
        container.onmouseover = function(){
            clearInterval(id);
            // 停止间隔调用
        }
        container.onmouseout = function(){
            id = setInterval(ani,3000);
            //  开始间隔调用
        }
        
        // 鼠标离开开始动画
        
        </script>
上一篇 下一篇

猜你喜欢

热点阅读