zoukankan      html  css  js  c++  java
  • jquery实现自动滚屏效果,适用用公告新闻等滚屏

    从网络上找到的例子,自己做了下扩展,原示例是向上滚动,扩展了一个向下滚动的方法:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>滚屏实验</title>
    <style type="text/css">
    ul,li{margin:0;padding:0}
    #scrollDiv{300px;height:100px;min-height:25px;line-height:25px;border:#ccc 1px solid;overflow:hidden}
    #scrollDiv li{height:25px;padding-left:10px;}
    </style>
        <script src="js/jquery-1.4.1.js"></script>
    
    <script type="text/javascript">
        (function ($) {
            $.fn.extend({
                Scroll: function (opt, callback) {
                    //参数初始化
                    if (!opt) var opt = {};
                    var _this = this.eq(0).find("ul:first");
                    var lineH = _this.find("li:first").height(), //获取行高
                            line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10), //每次滚动的行数,默认为一屏,即父容器高度
                            speed = opt.speed ? parseInt(opt.speed, 10) : 500, //卷动速度,数值越大,速度越慢(毫秒)
                            timer = opt.timer ? parseInt(opt.timer, 10) : 2000; //滚动的时间间隔(毫秒)
                    if (line == 0) line = 1;
                    var upHeight = 0 - line * lineH;
                    var downHeight=line * lineH - 0;
                    //滚动函数
                    scrollUp = function () {
                        _this.animate(
                            { marginTop: upHeight },
                            speed,
                            function () {
                                for (i = 1; i <= line; i++) {
                                    _this.find("li:first").appendTo(_this);
                                }
                                _this.css({ marginTop: 0 });
                            }
                        );
                    },
                    //向下滚动函数
                    scrollDown = function () {
                        _this.animate(
                            { marginTop: downHeight },//动画展示css样式
                            speed,
                            function () {
                                _this.find("li:last").prependTo(_this);
                                _this.css({ marginTop: 0 });
                            }
                            )
                    }
                    var timerID
                    //鼠标事件绑定
                    _this.hover(function () {
                        clearInterval(timerID);
                    }, function () {
                        timerID = setInterval("scrollDown()", timer);//这里调用向下或者向上滚动函数
                    }).mouseout();
                }
            })
        })(jQuery);
    
        $(document).ready(function () {
            $("#scrollDiv").Scroll({ line: 1, speed: 500, timer: 2000 });
        });
    </script>
    </head>
    
    <body>
    <p>多行滚动演示:</p>
    <div id="scrollDiv">
      <ul>
        <li>这是公告标题的第1行</li>
        <li>这是公告标题的第2行</li>
        <li>这是公告标题的第3行</li>
        <li>这是公告标题的第4行</li>
        <li>这是公告标题的第5行</li>
        <li>这是公告标题的第6行</li>
        <li>这是公告标题的第7行</li>
        <li>这是公告标题的第8行</li>
      </ul>
    </div>
    </body>
    </html>
  • 相关阅读:
    linux下使用OpenCV的一些问题
    Google Colab调用cv2.imshow奔溃
    [LeetCode] Word Search
    信号
    信号
    [Leetcode] Subsets
    [LeetCode] Combinations
    [LeetCode] Minimum Window Substring
    [LeetCode] Set Matrix Zeroes
    sigaction 函数
  • 原文地址:https://www.cnblogs.com/hiflora/p/4168729.html
Copyright © 2011-2022 走看看