最近研究了下滚动脚本.
为什么#a的overflow:hidden;不要了就停止滚动了.
还有#d的宽度width:900px ,不要了也停止了.
这是为什么啊.哪位大侠说说原理啊.感激!
<!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=gb2312" />
<title>无标题文档</title><style type="text/css">
#a{ width:474px; height:145px; overflow:hidden; border:none; margin:10px 0;}    
#d{float:left;width:900px}   
#b ,#c{height:148px;float:left; }  
</style>
</head><body>
<div id="a">  
      <div id="d">  
       <div id="b">  
  <ul>  
  
  <li>
   <div class="td">
<div class="td1">
<table width="147" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="147" height="126" align="center" valign="middle"><a href=""><img src="images/45_72.jpg" /></a></td>
  </tr>
</table>
</div>
</div>
<p><a href="">皙白焕颜乳液</a></p>
  </li>    
 <li>
   <div class="td">
<div class="td1">
<table width="147" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="147" height="126" align="center" valign="middle"><a href=""><img src="images/45_72.jpg" /></a></td>
  </tr>
</table>
</div>
</div>
<p><a href="">皙白焕颜乳液</a></p>
  </li>
  <li>
   <div class="td">
<div class="td1">
<table width="147" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="147" height="126" align="center" valign="middle"><a href=""><img src="images/45_72.jpg" /></a></td>
  </tr>
</table>
</div>
</div>
<p><a href="">皙白焕颜乳液</a></p>
  </li>
  <li>
   <div class="td">
<div class="td1">
<table width="147" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="147" height="126" align="center" valign="middle"><a href=""><img src="images/45_72.jpg" /></a></td>
  </tr>
</table>
</div>
</div>
<p><a href="">皙白焕颜乳液</a></p>
  </li>
  

  <div class="clear"></div>
  </ul>  
      </div>  
     <div id="c"></div>  
     </div>  
   </div>
   
   <script language="javascript">  
var a=document.getElementById("a");   
var b=document.getElementById("b");   
var c=document.getElementById("c");   
var speed=10;   
c.innerHTML=b.innerHTML;   
function Marquu(){   
    if(c.offsetWidth - a.scrollLeft<=0)   
    {   
//document.write(a.scrollLeft)
     a.scrollLeft= a.scrollLeft-c.offsetWidth;   
    }else   
    {   
     a.scrollLeft++;       
    }   
  
    }   
var m=setInterval(Marquu,speed);   
a.onmouseover=function() {clearInterval(m);}   
a.onmouseout=function() {m=setInterval(Marquu,speed);}   
  
</script>
</body>
</html>

解决方案 »

  1.   

    为什么#a的overflow:hidden;不要了就停止滚动了.
    还有#d的宽度width:900px ,不要了也停止了.其实我觉得你如果#a不加overflow:hidden;那么就全部显示了而且a.scrollLeft=0了。
    还有#d的宽度width:900px去掉了;那么a.scrollLeft=0,直接显示出来了!说的简单一些就是你外面有宽度,但是不加overflow:hidden;那它的宽度就变宽了,那就是没有滚动的必要了!
    如果你里面的#d不加宽度的话那里面的内容将按原有的大小显示。而也将不会滚动了!
    (不知道有没有讲明白关键是scolleft)