滚动效果

tech2022-10-20  104

<!doctype html>

<html>

 

<head>

    <meta charset="utf-8">

    <title>jQuery新闻列表滚动(上下滚动、横向滚动、无缝滚动、停顿滚动)</title>

    <link rel="stylesheet" href="bootstrap.min.css">

    <script src="jquery-2.1.4.min.js"></script>

    <style>

        body {

            background: #e9e9e9;

        }

        

        ul,

        li {

            margin: 0;

            padding: 0;

            list-style: none;

        }

        

        .box {

            width: 800px;

            margin: 100px auto;

        }

        

        .notic {

            width: 100%;

            height: 45px;

            background: #fff;

            overflow: hidden;

            box-shadow: 0 0 25px rgba(180, 180, 180, 0.5);

        }

        

        .notic ul li {

            height: 45px;

            line-height: 45px;

            font-size: 14px;

            padding: 0 15px;

        }

    </style>

</head>

 

<body>

    <div class="box">

        <div class="notic">

            <ul>

                <li><span class="pull-right">08-08</span>庆祝新中国成立70周年大型成就展24日起向公众开放</li>

                <li><span class="pull-right">08-08</span>93岁没想过退休美国华盛顿交</li>

                <li><span class="pull-right">08-08</span>企业国成立70周年大型成就展24日起向</li>

                <li><span class="pull-right">08-08</span>发色和凌晨3点起来发推</li>

                <li><span class="pull-right">08-08</span>他为村民解决</li>

                <li><span class="pull-right">08-08</span>庆祝新中国成立70周年大型成就展24日起向公众开放</li>

                <li><span class="pull-right">08-08</span>激进示威者抗议气候变化交通美国交通一时瘫痪</li>

            </ul>

        </div>

    </div>

 

    <script>

        // setInterval() 按照指定的时间周期(以毫秒计)来调用函数或计算表达式

        // 弊端:随着时间的推移内存占用会增多,时间长了可能会造成页面卡顿,严重的甚至浏览器奔溃

        // clearInterval() 取消由 setInterval() 函数设定的定时执行操作

        // setInterval()定时器开始 方法可按照指定的周期( 以毫秒计) 来调用函数或计算表达式。

        // setInterval() 方法会不停地调用函数, 直到 clearInterval() 被调用或窗口被关闭。

        //这一步就是 给选取的ul 先让他向上走一个li的高度然后再让他回到刚开始的位置 让他现在的第一个li标签去到最下面循环

        $(function() {

            // setInterval

            // clearInterval

            // find

            // animate

            // appendTo

            // mousemove

            // mouseout

            // css

            var time = setInterval(function() {

                $('.notic').find('ul').animate({

                    marginTop: "-45px"

                }, 500, function() {

                    $(this).css({

                        marginTop: "0px"

                    }).find("li:first").appendTo(this);

                })

            }, 3000); //公告列表滚动

 

            $('.notic ul').find('li').mousemove(function() {

                //当鼠标放到li标签上时 取消定时器效果

                // clearInterval() 方法可取消由 setInterval() 函数设定的定时执行操作。

                // clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

                clearInterval(time);

            }).mouseout(function() {

                time = setInterval(function() {

                    $('.notic').find('ul').animate({

                        marginTop: "-45px"

                    }, 500, function() {

                        $(this).css({

                            marginTop: "0px"

                        }).find("li:first").appendTo(this);

                    })

                }, 3000);

            });

        });

    </script>

</body>

 

</html>

最新回复(0)