IE引发了无效的参数错误,firefox没有

Mik*_*Sav 6 javascript internet-explorer

当我想炫耀JavaScript的力量时,我正在帮助朋友学习HTML,CSS等.我们制作了一些包含云图像的DIV,我们将它们移动到broswer(从右到左,然后当它从页面流出时返回到窗口innerWidth的起点),所以它看起来像天空 - 非常简单脚本.现在一切都很好,但在以后的IE浏览器中我注意到了一个错误.这不是一个真正的问题,因为脚本有效,但我想知道它为什么会发生以及如何阻止它!

这是我在window.onload事件中使用unobtrussive loader调用的脚本

    function moveCloud(cloudID, TimeOut, CloudWidth, thisLeft){

    var elem = document.getElementById(cloudID);
    var xpos = parseInt(elem.style.left);

    if(xpos > -CloudWidth){
        xpos--; 
      }else{
        xpos = window.innerWidth;
       }

    elem.style.left = xpos + "px";
    movement = setTimeout("moveCloud('" + cloudID + "'," + TimeOut + "," + CloudWidth + "," + thisLeft+ ")",TimeOut);
}
Run Code Online (Sandbox Code Playgroud)

我认为这可能是因为将一个整数连接到一个sting但是我认为JavaScript处理了这个转换?有任何想法吗?

这是错误

行:38错误:参数无效.

*更新***

这是我调用函数的方法,首先是这个

function StartCloud(cloudID, TimeOut, CloudWidth, thisLeft, thisTop){


    var elem = document.getElementById(cloudID); 
    if(elem){ // make sure item exists then position it via the JavaScript not the CSS
        elem.style.position = "absolute"; 
        elem.style.left = parseInt(thisLeft) + "px";
        elem.style.top = parseInt(thisTop)  + "px";
        movement = setTimeout("moveCloud('" + cloudID + "'," + TimeOut + "," + CloudWidth + "," + thisLeft+ ")",TimeOut); // start the animation function
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的电话 - 有4个云DIVS

window.onload = function (){
    //unobtrussive event handler
    StartCloud('cloud1', 60, 717, 450, 30);
    StartCloud('cloud2', 35, 349, 950, 230);
    StartCloud('cloud3', 30, 335, 300, 260);
    StartCloud('cloud4', 15, 290, 600, 450);
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*Sav 1

呃!IE 不支持 Window.innerWidth,因此我必须使用 document.documentElement.clientWidth 编写一个条件