Js图片匀速向上滚动

来源:互联网 发布:中软加密软件 编辑:程序博客网 时间:2024/04/29 12:13

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片向上滚动</title>
<style type="text/css">
  body{
   margin:0px;
   padding:0px;
     }
 *{margin:0px; padding:0px;}
 *{font-size:12px;}
 #scroll{width:173px; height:149px;  overflow:hidden;  }/*line-height是每次移动的距离,overflow;hidden 也不能省*/
 #scroll li{   width:173px; float:left; height:149px; text-align:center;}
 #scroll ul{ list-style:none;}
#scroll li img{width:165px; height:141px; border:none; padding:3px; border:#CCC 1px solid;}
 #scroll li p{font-size:12px; text-align:center; line-height:28px;}
 
</style>
<script type="text/javascript">
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>
</head>

<body >
<div id="scroll">
  <!--总共有三个scroll id,都改成一样边可通用;-->
  <ul>
    <li><img src="/jscss/demoimg/wall_s2.jpg" />
      
    </li>
    <li><img src="/jscss/demoimg/wall_s2.jpg" />
     
    </li>
    <li><img src="/jscss/demoimg/wall_s2.jpg" />
     
    </li>
    <li><img src="/jscss/demoimg/wall_s2.jpg" />
      
    </li>
    <li><img src="/jscss/demoimg/wall_s2.jpg" />
    
    </li>
    <li><img src="/jscss/demoimg/wall_s2.jpg" />
    </li>
     </ul>
</div>
<script>
window.onload=function(){
  new Marquee(
    "scroll",  //容器ID<br />
    0,  //向上滚动(0向上 1向下 2向左 3向右)<br />
    2,  //滚动的步长<br />
    173,  //容器可视宽度<br />
    149,  //容器可视高度<br />
    50,  //定时器 数值越小,滚动的速度越快(1000=1秒,建议不小于20)<br />
    1000,  //间歇停顿时间(0为不停顿,1000=1秒)<br />
    1000,  //开始时的等待时间(0为不等待,1000=1秒)<br />
   143//间歇滚动间距(可选)<br />
    );
  };
</script>
</body>
</html>