<SCRIPT>
var NowFrame = 1;
var MaxFrame = 3;
var bStart = 0;
function fnToggle() {
var next = NowFrame + 1;
if(next == MaxFrame+1) 
{
NowFrame = MaxFrame;
next = 1;
}
if(bStart == 0)
{
bStart = 1;
  
setTimeout('fnToggle()', 4000);
return;
}
else
{
oTransContainer.filters[0].Apply();
document.images['oDIV'+next].style.display = "";
document.images['oDIV'+NowFrame].style.display = "none"; 
oTransContainer.filters[0].Play(duration=5);
if(NowFrame == MaxFrame) 
NowFrame = 1;
else
NowFrame++;
} setTimeout('fnToggle()', 4000);
}
fnToggle();
</SCRIPT>现在是只执行一次,也就是第一张图片的时候SetTimeout应用后面的4000毫秒的时间,随后第二张图第三张图就不继续应用这个了,很愁人啊,麻烦高手帮忙解救!~

解决方案 »

  1.   

    你的
    oTransContainer.filters[0].Apply();
    document.images['oDIV'+next].style.display = "";
    document.images['oDIV'+NowFrame].style.display = "none"; 
    oTransContainer.filters[0].Play(duration=5);这段有错误,导致了后面的setTimeout无效,所以只运行了一次,你先把这几句注释了,然后再运行看看
      

  2.   

    filters是IE Only。一般我不用。 简单弄了个Demo,希望能帮到你。
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Shift-Images</title>
    <style type="text/css">
    .wrap{width:200px;height:20px;border:1px solid #369;text-align:center;}
    #mainShow{width:180px;height:100px;border:1px solid #f00;}
    .imgbord{border:1px solid #0f0;width:20px; height:20px;}
    </style></head>
    <body>
    <div class="wrap">
      <div id="mainShow">
        <img src="images/test1.gif" name="test" id="test" /><br />
        <span id="tipText">test1.gif</span>
      </div>
      <img src="images/test1.gif" name="test1" id="test1" />
      <img src="images/test2.gif" name="test2" id="test2" />
      <img src="images/test3.gif" name="test3" id="test3" />
    </div><script type="text/javascript">
    var nowImg=0;
    var maxImg=3;
    var startPlay=false;
    function toggle() {
    nowImg=nowImg+1;
    if (nowImg==maxImg+1) {
    nowImg=1;
    }
    document.getElementById("test").src="images/test"+nowImg+".gif";
    document.getElementById("tipText").innerHTML="test"+nowImg+".gif";
    if (nowImg-1<=0){
    document.getElementById("test"+maxImg).className="";
    }
    else{
    document.getElementById("test"+(nowImg-1)).className="";
    }
    document.getElementById("test"+nowImg).className="imgbord";
    setTimeout("toggle()",4000);
    }
    toggle();
    </script>
    </body>
    </html>
      

  3.   

    注释这两句即可
    //oTransContainer.filters[0].Apply();
    document.images['oDIV'+next].style.display = "";
    document.images['oDIV'+NowFrame].style.display = "none"; 
    //oTransContainer.filters[0].Play(duration=5);