分享

实现信息的上下滚动

 四两哥 2011-08-26
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www./1999/xhtml">
<head runat="server">
<style type="text/css">
ul,li
{
    margin:0;
    padding:0;
    }
#scrollDiv
{
    width:300px;
    height:250px;
    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.2.min.js" type="text/javascript"></script>
    <script src="js/scroll.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
      $(function () {
            $("#scrollDiv").Scroll({ line: 10, speed: 500,up: "btn1", down: "btn2" });
        });    
    </script>
    <title></title>
</head>
<body>
    <p style="font-family: 微软雅黑; font-weight: bold;">信息滚动栏DEMO:</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>
            <li>这是滚动信息的第9行</li>
            <li>这是滚动信息的第10行</li>
            <li>这是滚动信息的第11行</li>
            <li>这是滚动信息的第12行</li>
            <li>这是滚动信息的第13行</li>
            <li>这是滚动信息的第14行</li>
            <li>这是滚动信息的第15行</li>
            <li>这是滚动信息的第16行</li>
            <li>这是滚动信息的第17行</li>
            <li>这是滚动信息的第18行</li>
            <li>这是滚动信息的第19行</li>
            <li>这是滚动信息的第20行</li>
            <li>这是滚动信息的第21行</li>
            <li>这是滚动信息的第22行</li>
            <li>这是滚动信息的第23行</li>
            <li>这是滚动信息的第24行</li>
            <li>这是滚动信息的第25行</li>
            <li>这是滚动信息的第26行</li>
            <li>这是滚动信息的第27行</li>
            <li>这是滚动信息的第28行</li>
            <li>这是滚动信息的第29行</li>
            <li>这是滚动信息的第30行</li>
        </ul>
    </div>
    <button id="btn1">上滚</button>
    <button id="btn2">下滚</button>
</body>
</html>






其中scroll.js为封装方法,以下为其实现方法
(function ($) {
    $.fn.extend({
        Scroll: function (opt, callback) {
            if (!opt) var opt = {};
            var _btnUp = $("#" + opt.up); //向上按钮     
            var _btnDown = $("#" + opt.down); //向下按钮
            var _this = this.eq(0).find("ul:first");
            var lineH = _this.find("li:first").height(); //获取行高    
            var line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10); //每次滚动的行数,默认为一屏,即父容器高度
            var speed = opt.speed ? parseInt(opt.speed, 10) : 600; //卷动速度,数值越大,速度越慢(毫秒)
            var m = line;  //用于计算的变量
            var count = _this.find("li").length; //总共的<li>元素的个数
            var upHeight = line * lineH;
            function scrollUp() {
                if (!_this.is(":animated")) {  //判断元素是否正处于动画,如果不处于动画状态,则追加动画。
                    if (m < count) {  //判断 m 是否小于总的个数
                        m += line;
                        _this.animate({ marginTop: "-=" + upHeight + "px" }, speed);
                    }
                }
            }
            function scrollDown() {
                if (!_this.is(":animated")) {
                    if (m > line) { //判断m 是否大于一屏个数
                        m -= line;
                        _this.animate({ marginTop: "+=" + upHeight + "px" }, speed);
                    }
                }
            }
            _btnUp.bind("click", scrollUp);
            _btnDown.bind("click", scrollDown);
        }
    });
})(jQuery);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约