对一个多行文本的向上滚动,不是无缝,是一行一行的滚动。

要实现一个ul li的向上滚动。不用无缝滚动。同时鼠标悬停在上面的时候暂停、

不使用marquee。 如下:

 <html xmlns="http://www.w3.org/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="http://www.jq22.com/jquery/jquery-2.1.1.js"></script>
    <script language="javascript" type="text/javascript">
        (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);
    </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>
 <MARQUEE onmouseover=this.stop() style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体" onmouseout=this.start() scrollAmount=1 scrollDelay=10 width="200" direction=up>
<A href="http://www.qpsh.com" target=_blank><FONT color=#FF0000>什么是网页特效?</FONT></A> <br /> 
<A href="http://www.qpsh.com" target=_blank><FONT color=#0000FF>如何使用网页特效?</FONT></A><br />
<A href="http://www.qpsh.com" target=_blank><FONT color=#FF0000>什么是网页特效?</FONT></A> <br />
<A href="http://www.qpsh.com" target=_blank><FONT color=#0000FF>如何使用网页特效?</FONT></A>
</MARQUEE>

放入marquee中就好了。。


<marquee direction="up" onmouseover="this.stop()" onmouseout="this.start()">
    <ul>
        <script>
            for(var i=0;i<20;i++)document.write('<li>'+i+'</li>')
        </script>
    </ul>
</marquee>

html代码如下

 <!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <link rel="stylesheet" href="gdt.css" type="text/css">  
    <script type="text/javascript" src="gdt.js"></script>  
    <title>通知栏消息滚动Demo</title>  
</head>  
<body id="body">  
    <div id="dtk">  
        <ul id="fd">  
            <li>消息栏目0</li>  
                         <li>消息栏目1</li>  
                         <li>消息栏目2</li>  
                         <li>消息栏目3</li>  
                         <li>消息栏目4</li>  
                         <li>消息栏目5</li> 
        </ul>  
    </div>  
</body>  
</html>  

css代码如下

 #body{  
    margin: 0px;  
}  
#fd {  
    width: 200px; /*对文字进行处理*/  
    height: 300px;  
    position: absolute;  
    top: 201px;  
    text-align: center;  

}  
#dtk{  
    width: 200px;/*浮动区域进行限制*/  
    height: 200px;  
    border:1px solid beige;  
    margin: 0px 100px 250px 500px;  
    position: absolute;  
    overflow: hidden;  
}  

js代码如下

window.onload = function () {  
    var fd = document.getElementById("fd");  
    var dtk = document.getElementById("dtk");  
    var sttep=parseInt(document.defaultView.getComputedStyle(fd,null).top.slice(0,-2));  
    var dtkstart = parseInt(document.defaultView.getComputedStyle(fd,null).bottom.slice(0,-2));  
    var dtknum = parseInt(document.defaultView.getComputedStyle(dtk,null).bottom.slice(0,-2));  
    setInterval(function () {  
        var top = document.defaultView.getComputedStyle(fd,null).top;  
        var num = parseInt(top.slice(0,-2));//果有个参数为负值,那么这里的范围为【0,stringValue.length+(-2));  
        if(num>=(sttep+dtkstart-dtknum))  
        fd.style.cssText = "top:"+((num-1)+"px")+";";  
        else{  
            fd.style.cssText = "bottom:"+((sttep-1)+"px")+";";  
        }  
    },50);  
}