<div id=demopx style="overflow:hidden; width:314px; height:178px;"> 
<div id=demopx1> <%
  set rs=server.CreateObject("adodb.recordset")
  rs.open "select * from model_content where channelid=29",conn,1,1
  if not rs.eof then
  do while not rs.eof
%>

<li><a href="newsread.asp?id=<%=rs("id")%>"><%if len(rs("title"))>12 then response.write left(rs("title"),12)&"..." else response.write rs("title") end if%>[<%=formatdatetime(rs("addtime"),2)%>]</a></li>

<%
   rs.movenext
   loop
   else
    response.write"<li><a href=javascript:void(0)>暂无动态</a></li>"
   end if
   
   rs.close
   set rs=nothing
%>
         </div> 
<div id=demopx2></div> 
</div> 
<script language="javascript"> 
var speed=50
demopx2.innerHTML=demopx1.innerHTML 
function Marquee(){ 
if(demopx2.offsetTop-demopx.scrollTop<=0) 
demopx.scrollTop-=demopx1.offsetHeight 
else{ 
demopx.scrollTop++ 


var MyMar=setInterval(Marquee,speed) 
demopx.onmouseover=function() {clearInterval(MyMar)} 
demopx.onmouseout=function() {MyMar=setInterval(Marquee,speed)} 
</script> 
代码如上.为什么它只滚动两次就停了?不是连续的么?比如说,我有10条记录,这个时候它会滚动20条,之后就停了.
如果我的记录多了的话,这个还看不出来.但是少了一下子就看出来了.

解决方案 »

  1.   

    估计是上述原因,不行的话给个静态demo
      

  2.   

    把demopx的height改小点就好了
    不然的话满足不了demopx2.offsetTop<=demopx.scrollTop 这个条件
    静态测试例子,点按钮查看demopx2.offsetTop和demopx.scrollTop 的值:  <div id=demopx style="overflow:hidden; width:314px; height:90px;"> 
    <div id=demopx1> <li><a href="#">11111111[2010-1-2]</a></li>
    <li><a href="#">222222[2010-1-2]</a></li>
    <li><a href="#">33333[2010-1-2]</a></li>
    <li><a href="#">444444[2010-1-2]</a></li>
    <li><a href="#">555555[2010-1-2]</a></li></div> 
    <div id=demopx2></div> 
    </div> 
    <INPUT TYPE="button" VALUE="" ONCLICK="alert(demopx2.offsetTop+'::'+demopx.scrollTop)">
    <script language="javascript"> 
    var speed=50
    demopx2.innerHTML=demopx1.innerHTML 
    function Marquee(){ 
    if(demopx2.offsetTop<=demopx.scrollTop) 
    demopx.scrollTop -= demopx1.offsetHeight;
    else{ 
    demopx.scrollTop++;


    var MyMar=setInterval(Marquee,speed) 
    demopx.onmouseover=function() {clearInterval(MyMar)} 
    demopx.onmouseout=function() {MyMar=setInterval(Marquee,speed)} 
    </script>