[code=C#]function startmarquee(lh,speed,delay,index)
{
var t;
var p=false;
var o=document.getElementById("marqueebox"+index);
o.innerHTML+=o.innerHTML;
o.onmouseover=function(){p=true}
o.onmouseout=function(){p=false}
o.scrollTop = 0;
function start()
{
  t=setInterval(scrolling,speed);
  if(!p) o.scrollTop += 2;
}
function scrolling()
{
  if(o.scrollTop%lh!=0)
      {
    o.scrollTop += 2;
    if(o.scrollTop>=o.scrollHeight/2) o.scrollTop = 0;
  }
      else
  {
    clearInterval(t);
    setTimeout(start,delay);
  }
}
setTimeout(start,delay);
}code]
请问这段代码里t=setInterval(scrolling,speed);
  if(!p) o.scrollTop += 2;
这个两个句子的执行顺序
它先前o.scrollTop = 0;
先经过一段时间后o.scrollTop += 2;吗?setInterval(scrolling,speed);speed秒后再执行scrolling吗
t=setInterval(scrolling,speed);
  if(!p) o.scrollTop += 2;是同步执行的吗

解决方案 »

  1.   

    js代码 你居然用 C#源码框
      

  2.   

    关键是你用就用吧,还把后面的[/code]删掉了'[/'-_________-!
    SetInterval和setTimeout很类似。setTimeout 运用在延迟一段时间,再进行某项操作。 setTimeout("function",time); //设置一个超时对象 
    setInterval("function",time); //设置一个超时对象 clearTimeout(对象); //清除已设置的setTimeout对象 
    clearInterval(对象); //清除已设置的setInterval对象 
    区别:
    SetInterval为自动重复,setTimeout不会重复。 
      

  3.   

    给你个链接,详细介绍SetTimeout,SetInterval ,http://ork.javaeye.com/blog/679847
      

  4.   

    下面的代码很好的说明了执行顺序问题 ,请保存成html文件预览一下
    <script type="text/javascript">
    var i = 0;
    function Hello(_Name)
    {
    i++;
    alert("Hello "+_Name);
    if (i>5)
    {
    clearInterval(IntervalHandle);
    }
    }
    var userName1 = "SetTimeout Jack";
    window.setTimeout("Hello(userName1)",3000);alert('Root');var userName2 = "SetInterval Marqon";
    var IntervalHandle = window.setInterval("Hello(userName2)",1000);</script>
      

  5.   

    ff,ie都支持MARQUE
    何必那么写地.