JS實用的帶停頓的逐行文本循環滾動效果


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>JS實用的帶停頓的逐行文本循環滾動效果丨kiddy官網河北運動地板</title>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    <style type="text/css">
    #scrollBox2{font-size:12px;width:260px;color:#646464;line-height:22px;height:66px;overflow:hidden;text-align:left;}
    </style>
    </head>
    <body>
    <div id="scrollBox2" style="text-align:left;">
    歡迎光臨 
    實用的逐行文本滾動效果<br>
    滾動一行至另一行時有所停頓<br>
    希望大家喜歡,感覺挺簡潔的代碼<br>
    </div>
    <script>
    window.onload=function(){
    new Marquee(
    "scrollBox2",  //容器ID<br>
    0,  //向上滾動(0向上 1向下 2向左 3向右)<br>
    2,  //滾動的步長<br>
    200,  //容器可視寬度<br>
    64,  //容器可視高度<br>
    50,  //定時器 數值越小,滾動的速度越快(1000=1秒,建議不小於20)<br>
    2000,  //間歇停頓時間(0為不停頓,1000=1秒)<br>
    1000,  //開始時的等待時間(0為不等待,1000=1秒)<br>
    22  //間歇滾動間距(可選)<br>
    );
    };
    function Marquee(){
    this.ID=document.getElementById(arguments[0]);
    this.Direction=arguments[1];
    this.Step=arguments[2];
    this.Width=arguments[3];
    this.Height=arguments[4];
    this.Timer=arguments[5];
    this.WaitTime=arguments[6];
    this.StopTime=arguments[7];
    if(arguments[8]){this.ScrollStep=arguments[8];}else{this.ScrollStep=this.Direction>1?this.Width:this.Height;}
    this.CTL=this.StartID=this.Stop=this.MouseOver=0;
    this.ID.style.overflowX=this.ID.style.overflowY="hidden";
    this.ID.noWrap=true;
    this.ID.style.width=this.Width;
    this.ID.style.height=this.Height;
    this.ClientScroll=this.Direction>1?this.ID.scrollWidth:this.ID.scrollHeight;
    this.ID.innerHTML+=this.ID.innerHTML;
    this.Start(this,this.Timer,this.WaitTime,this.StopTime);
    }
    Marquee.prototype.Start=function(msobj,timer,waittime,stoptime){
    msobj.StartID=function(){msobj.Scroll();}
    msobj.Continue=function(){
    if(msobj.MouseOver==1){setTimeout(msobj.Continue,waittime);}
    else{clearInterval(msobj.TimerID); msobj.CTL=msobj.Stop=0; msobj.TimerID=setInterval(msobj.StartID,timer);}
    }
    msobj.Pause=function(){msobj.Stop=1; clearInterval(msobj.TimerID); setTimeout(msobj.Continue,waittime);}
    msobj.Begin=function(){
    msobj.TimerID=setInterval(msobj.StartID,timer);
    msobj.ID.onmouseover=function(){msobj.MouseOver=1; clearInterval(msobj.TimerID);}
    msobj.ID.onmouseout=function(){msobj.MouseOver=0; if(msobj.Stop==0){clearInterval(msobj.TimerID); msobj.TimerID=setInterval(msobj.StartID,timer);}}
    }
    setTimeout(msobj.Begin,stoptime);
    }
    Marquee.prototype.Scroll=function(){
    switch(this.Direction){
    case 0:
    this.CTL+=this.Step;
    if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollTop+=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
    else{if(this.ID.scrollTop>=this.ClientScroll) this.ID.scrollTop-=this.ClientScroll; this.ID.scrollTop+=this.Step;}
    break;
    case 1:
    this.CTL+=this.Step;
    if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollTop-=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
    else{if(this.ID.scrollTop<=0) this.ID.scrollTop+=this.ClientScroll; this.ID.scrollTop-=this.Step;}
    break;
    case 2:
    this.CTL+=this.Step;
    if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollLeft+=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
    else{if(this.ID.scrollLeft>=this.ClientScroll) this.ID.scrollLeft-=this.ClientScroll; this.ID.scrollLeft+=this.Step;}
    break;
    case 3:
    this.CTL+=this.Step;
    if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollLeft-=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
    else{if(this.ID.scrollLeft<=0) this.ID.scrollLeft+=this.ClientScroll; this.ID.scrollLeft-=this.Step;}
    break;
    }
    }
    </script>
    </body>
    </html>
    <br><br><hr>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM