实现不间断向上滚动文字的特效

来源:互联网 发布:上海边锋网络 编辑:程序博客网 时间:2024/04/29 15:45
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE>  <META NAME="Generator" CONTENT="EditPlus">  <META NAME="Author" CONTENT="">   <META NAME="Keywords" CONTENT="">   <META NAME="Description" CONTENT="">   </HEAD> <BODY> <div id="marquees">   <!-- 这些是字幕的内容,你可以任意定义 -->             <table width="100%" border="0" cellspacing="2" cellpadding="0">               <tr>        <td align="center" class="FEA203br">赶紧干你的活去否则!嘿嘿,不给你发钱</td>   </tr>                   <tr> <td align="center" class="FEA203br">#</td>                             </tr>            <tr>                                       <td align="center" class="FEA203br">#</td>                                        </tr>                                              </table> <!-- 字幕内容结束 --> </div>                                        <!-- 以下是javascript代码 -->                                        <script language="javascript">                                         <!--                                          marqueesHeight=200; //内容区高度                                          stopscroll=false; //这个变量控制是否停止滚动                                          with(marquees){                                           noWrap=true; //这句表内容区不自动换行                                           style.width=0; //于是我们可以将它的宽度设为0,因为它会被撑大                                           style.height=marqueesHeight;                                           style.overflowY="hidden"; //滚动条不可见                                           onmouseover=new Function("stopscroll=true");                                           //鼠标经过,停止滚动                                            onmouseout=new Function("stopscroll=false"); //鼠标离开,开始滚动                                            }                                            //这时候,内容区的高度是无法读取了。下面输出一个不可见的层"templayer",稍后将内容复制到里面:                                            document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');                                            function init(){                                            //初始化滚动内容                                            //多次复制原内容到"templayer",直到"templayer"的高度大于内容区高度:                                            while(templayer.offsetHeight<marqueesHeight){ templayer.innerHTML+=marquees.innerHTML; }                                             //把"templayer"的内容的“两倍”复制回原内容区:                                             marquees.innerHTML=templayer.innerHTML+templayer.innerHTML;                                              //设置连续超时,调用"scrollUp()"函数驱动滚动条:                                              setInterval("scrollUp()",20); }                                              document.body.onload=init; preTop=0; //这个变量用于判断滚动条是否已经到了尽头                                              function scrollUp(){                                               //滚动条的驱动函数                                               if(stopscroll==true) return;                                               //如果变量"stopscroll"为真,则停止滚动                                                preTop=marquees.scrollTop; //记录滚动前的滚动条位置                                                marquees.scrollTop+=1; //滚动条向下移动一个像素                                                //如果滚动条不动了,则向上滚动到和当前画面一样的位置                                                //当然不仅如此,同样还要向下滚动一个像素(+1):                                                if(preTop==marquees.scrollTop){                                                                                                 marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1;                                                 }                                                  }                                                  -->                                                 </script> </BODY> </HTML>                                                 以下是分屏显示滚动效果:                                                 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>                                                  <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus">                                                   <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT="">                                                   <META NAME="Description" CONTENT=""> </HEAD> <BODY>                                                    <style type="text/css">                                                          #infozone{font-size:12px;color:#aa6;overflow:hidden;width:800px;height:60px;}                                                          <!--这里修改Div高度 -->                                                            #infozone div{height:60px;line-height:20px;white-space:nowrap;overflow:hidden;}                                                            <!--这里修改Div高度 -->  </style>  <div id="infozone">  <div>                                                            第1行:赶紧干你的活去否则!嘿嘿,不给你发钱<br>第2行:路边野花不要采<br>第3行:海的女儿                                                            </div>  <div>第4行:赶紧干你的活去否则!嘿嘿,不给你发钱<br>第5行:路边野花不要采<br>第6行:海的女儿</div>  <div>第7行:赶紧干你的活去否则!嘿嘿,不给你发钱<br>第8行:路边野花不要采<br>第9行:海的女儿</div>  </div>                                                              <script type="text/javascript">                                                                var o=document.getElementById('infozone');  mr=window.setInterval(function(){scrollup(o,60,0);},4000); //4000代表间隔多长时间,包括滚动的时间。60代表滚动的高度。  infozone.onmouseover=function()  {clearInterval(mr)}    infozone.onmouseout=function()    {mr=setInterval(function(){scrollup(o,60,0);},4000)}     //同上       function scrollup(o,d,c){  if(d<=c){        var t=o.firstChild.cloneNode(true);        o.removeChild(o.firstChild);         o.appendChild(t);  t.style.marginTop=o.firstChild.style.marginTop='0px';  }          else{           var s=3,c=c+s,l=(c>=d?c-d:0);           o.firstChild.style.marginTop=-c+l+'px';            window.setTimeout(function(){scrollup(o,d,c-l)},100);  }             }  </script> </BODY> </HTML>