间歇轮播

作者: CondorHero | 来源:发表于2019-02-24 23:44 被阅读6次

    小窗口间歇轮播

    处理时候只需要复制第一个图片。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>间歇轮播</title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            div{
                width: 600px;
                height: 40px;
                line-height: 40px;
                border: 1px solid red;
                margin: 100px;
                position: relative;
                overflow: hidden;
            }
            div ul{
                position: absolute;
                top: 0;
                left: 0;
                list-style: none;
            }
        </style>
    </head>
    <body>
        <div>
            <ul>
                <li>通知:明天上课啊,后天也上课啊!</li>
                <li>通知:熬过三天就休息了!</li>
                <li>通知:哈哈哈哈哈哈哈哈哈哈!</li>
            </ul>
        </div>
    
        
        <script type="text/javascript" src="animate-2.0.1.js"></script>
        <script type="text/javascript">
            //得到所有元素
            var ul = document.getElementsByTagName("ul")[0];
            var lis = document.getElementsByTagName("li");
    
            var length = lis.length;
    
            //复制第0个li,追加到后面,当做魔术元素,猫腻
            ul.appendChild(lis[0].cloneNode(true));
    
            //信号量
            var idx = 0;
            //模拟右按钮的业务
            function move(){
                idx++;
                animate(ul,{"top":-40 * idx},800,function(){
                    if(idx > length - 1){
                        idx = 0;
                        this.style.top = "0px";
                    }
                });
            }
        
    
            //调用动画函数的间隔时间,要远大于动画运行时间
            //这时就给人感觉一个间歇的过程
            setInterval(move, 1800);
        </script>
    </body>
    </html>
    

    大窗口间歇轮播

    这个处理的时候全部内容复制一份。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>间歇轮播</title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            div{
                width: 600px;
                height: 200px;
                line-height: 40px;
                border: 1px solid blue;
                margin: 100px;
                position: relative;
                overflow: hidden;
            }
            div ul{
                position: absolute;
                top: 0;
                left: 0;
                list-style: none;
            }
        </style>
    </head>
    <body>
        <div>
            <ul>
                <li>邱*健 北京*狐网络有线公司 16k</li>
                <li>李*波 北京*东网络有线公司 26k</li>
                <li>王* 北京*60网络有线公司 36k</li>
                <li>赵* 北京*60网络有线公司 36k</li>
                <li>马* 北京*60网络有线公司 36k</li>
                <li>刘* 北京*60网络有线公司 36k</li>
                <li>李* 北京*60网络有线公司 36k</li>
                <li>李** 北京*60网络有线公司 36k</li>
            </ul>
        </div>
    
        
        <script type="text/javascript" src="animate-2.0.1.js"></script>
        <script type="text/javascript">
            //得到所有元素
            var ul = document.getElementsByTagName("ul")[0];
            var lis = document.getElementsByTagName("li");
    
            var length = lis.length;
    
            //复制所有li,追加到ul里
            ul.innerHTML += ul.innerHTML;
    
            //信号量
            var idx = 0;
            //模拟右按钮的业务
            function move(){
                idx++;
                animate(ul,{"top":-40 * idx},800,function(){
                    if(idx > length - 1){
                        idx = 0;
                        this.style.top = "0px";
                    }
                });
            }
        
    
            //调用动画函数的间隔时间,要远大于动画运行时间
            //这时就给人感觉一个间歇的过程
            setInterval(move, 1800);
        </script>
    </body>
    </html>
    

    横图间歇轮播

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>间歇轮播</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .rolling{
                width: 800px;
                height: 130px;
                border: 10px solid #ccc;
                margin: 100px auto;
                position: relative;
                overflow: hidden;
            }
            .rolling .m_unit{
                /*这是运动的单位*/
                /*这个宽度足以致命,为了让所有的li能够并排*/
                /*这个宽度随便取,大一点*/
                width: 5000px;
                position: absolute;
                top: 0;
                left: 0;
            }
            .rolling ul{
                list-style: none;
            }
            .rolling ul li{
                float: left;
                margin-right: 10px;
            }
        </style>
    </head>
    <body>
        <div class="rolling" id="rolling">
            <div class="m_unit" id="m_unit">
                <ul>
                    <li><a href=""><img src="images/shuzi/0.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/1.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/2.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/3.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/4.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/5.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/6.png" alt="" /></a></li>
                    <li><a href=""><img src="images/shuzi/7.png" alt="" /></a></li>
                </ul>
            </div>
        </div>
        
        <script type="text/javascript" src="animate-2.0.1.js"></script>
        <script type="text/javascript">
            //得到元素
            var rolling = document.getElementById("rolling");
            var m_unit = document.getElementById("m_unit");
            var listul = m_unit.getElementsByTagName("ul")[0];
            //得到图片的数量,计算折返点用的,折返点就是210 * 图片数量
            var lislength = listul.getElementsByTagName("li").length;
    
            //复制一倍的li
            listul.innerHTML += listul.innerHTML;
            
            //信号量
            var idx = 0;
            //模拟右按钮的业务
            function move(){
                idx++;
                animate(m_unit,{"left":-210 * idx},800,function(){
                    if(idx > lislength - 1){
                        idx = 0;
                        this.style.left = "0px";
                    }
                });
            }
        
            //调用动画函数的间隔时间,要远大于动画运行时间
            //这时就给人感觉一个间歇的过程
            var timer = setInterval(move, 2000);
    
            rolling.onmouseover = function(){
                clearInterval(timer);
            }
    
            rolling.onmouseout = function(){
                timer = setInterval(move, 2000);
            }
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:间歇轮播

        本文链接:https://www.haomeiwen.com/subject/eimiyqtx.html