0

这是我页面的链接:http: //myweb.students.wwu.edu/~tuckerb2/cs202/peanuts/project/open.html。我在使用所有浏览器时都遇到了问题,尽管它适用于 Firefox 和 Chrome,但不适用于 IE。我需要修复这个出现在 Firefox 和 IE 中的解析错误,以便它 a) 在 Fox 中不显示错误并且 b) 在 IE 中实际工作。请帮忙!谢谢!

4

1 回答 1

0

有几件事你应该看看

首先,在 IE (6,7,8) 中 window.innerHeight 不存在,您可以使用以下内容:

var h = (document.documentElement.clientHeight/2)-17;

另一个问题是,一旦字母在屏幕中央匹配,您就不会停止已启动的计时器。这意味着它们将继续运行并生成错误,因为变量 topLetters 和 bottomLetters 现在大于数组 topPos 和 bottomPos 的大小。

函数 setInterval 返回对其计时器的引用,因此您可以使用以下代码

var topTimer, bottomTimer;
function startSnowing() {
    topTimer = setInterval("topFall()",10);
    bottomTimer = setInterval("bottomRise()",10);
 }

并将您的 topFall() 和 bottomRise() 方法更改为类似

function bottomRise() {
    if (bottomLetters < bottomPos.length) {
        document.getElementById("bottomLetters").style.bottom = bottomPos[bottomLetters] + "px";
        bottomLetters++;
    }
    else {
        clearInterval(bottomTimer);
    } 
}

希望这可以帮助!

于 2012-05-30T00:52:53.473 回答