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>

  <meta http-equiv="Content-Type" content="text/html; charset=GBK" />

  <title>JS左右无缝滚动(一般方法+面向对象方法)</title>

  <style type="text/css">

  .clearfix:after {content:"."; display:block; height:0; visibility:hidden; clear:both; }

  .clearfix { *zoom:1; }

  body{background:gray;}

  #wrap{width:810px; height:160px;

  border:1px solid black;

  position:relative;

  left:50%;

  top:50%;

  margin-left:-410px;

  margin-top:200px;

  background:#fff;

  overflow:hidden;}

  #wrap ul{margin:0px;

  padding:0px;

  position:absolute;

  top:0px;

  left:0px;}

  #wrap ul li{ list-style:none; float:left;margin:5px 10px;width:265px;}

  #wrap ul li img{ border:1px black solid; padding:10px;}

  </style>

  <!--script type="text/javascript">

  window.onload=function(){ //一般方法

  var wrap=document.getElementById("wrap");

  var wrap_ul=wrap.getElementsByTagName("ul")[0];

  var wrap_li=wrap.getElementsByTagName("li");

  wrap_ul.innerHTML+=wrap_ul.innerHTML;

  wrap_ul.style.width=(wrap_li[0].offsetWidth+20)*wrap_li.length+"px";

  Autoscroll=setInterval(scroll,100);

  function scroll(){

  wrap_ul.style.left=wrap_ul.offsetLeft-3+"px"; //这里因为ie对offsetLeft的解析不一样,所以ie下必须减大于等于3的数

  if(wrap_ul.offsetLeft<=-wrap_ul.offsetWidth/2){

  wrap_ul.style.left="0px";

  }else if(wrap_ul.offsetLeft>=0){

  wrap_ul.style.left=-wrap_ul.offsetWidth/2+"px";

  }

  }

  wrap.onmouseover=function(){

  clearInterval(Autoscroll);

  }

  wrap.onmouseout=function(){

  Autoscroll=setInterval(scroll,100);

  }

  }

  </script-->

  <script type="text/javascript">

  function Slide(obj,direction,speed){ //面向对象的方法,可以自由控制方向,speed=>3 ie下可以

  this.container=document.getElementById(obj);

  this.content=this.container.getElementsByTagName("ul")[0];

  this.lis=this.content.getElementsByTagName("li");

  this.content.innerHTML+=this.content.innerHTML;

  this.content.style.width=(this.lis[0].offsetWidth+20)*this.lis.length+"px";

  var that=this

  if(direction=="left"){

  this.speed=-speed

  }else if(direction=="right"){

  this.speed=speed

  }

  Slide.prototype.scroll=function(){

  this.content.style.left=this.content.offsetLeft+this.speed+"px";

  if(this.content.offsetLeft <= -this.content.offsetWidth/2){

  this.content.style.left ="0px";

  }else if(this.content.offsetLeft >=0){

  this.content.style.left = -this.content.offsetWidth/2 + "px";

  }

  }

  this.time=setInterval(function(){that.scroll()},100);

  this.container.onmouseover=function(){

  clearInterval(that.time);

  }

  this.container.onmouseout=function(){

  that.time=setInterval(function(){that.scroll()},100);

  }

  }

  </script>

  <script type="text/javascript">

  window.onload=function(){new Slide("wrap","left",5)}

  </script>

  </head>

  <body>

  <div id="wrap">

  <ul class="clearfix">

  <li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li>

  <li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li>

  <li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li>

  <li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li>

  <li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li>

  </ul>

  </div>

  </body>

  </html>