为什么Chrome不能运行此Javascript?

时间:2012-09-14 12:19:25

标签: javascript google-chrome

该脚本在FF和IE中运行良好,但在Chrome中则不行。有人可以帮助找到问题吗?

if statmenst似乎不应该在他们应该的时候运行,他们什么都不做。

var top = 285;
var bottom = 650;

var pageheight, maxscroll;


window.onload = function(){

    pageheight = document.body.offsetHeight;

    maxscroll = pageheight - (bottom+40);

}

    window.onscroll = function(){

        var element = document.getElementById("guide-menu");

        if(window.pageYOffset < top){

            element.style.position = "absolute";
            element.style.top = "300px";

        }

        if(window.pageYOffset > top){

            element.style.top = "10px";
            element.style.position = "fixed";
            element.style.marginTop = "0px";

        }

        if(window.pageYOffset > maxscroll){

            element.style.position = "absolute";

            element.style.marginTop = (pageheight - bottom - 40) + "px";

        }

}

2 个答案:

答案 0 :(得分:2)

“top”在chrome中有不同的含义。只是尝试重命名顶级变量。

答案 1 :(得分:2)

“top”变量返回最顶层的浏览器窗口。 Chrome是唯一不支持覆盖此变量的主要浏览器。

将变量重命名为“myTop”非常有效。

此代码效果很好。

    var myTop = 285;
    var bottom = 650;

    var pageheight, maxscroll;


    window.onload = function(){
        pageheight    = document.body.offsetHeight;
        maxscroll     = pageheight - (bottom+40);

        window.onscroll = function()
        {
            var element = document.getElementById("guide-menu");
            if(window.pageYOffset < myTop)
            {
                element.style.position = "absolute";
                element.style.top = "300px";
            }

            if(window.pageYOffset > myTop)
            {
                element.style.top = "10px";
                element.style.position = "fixed";
                element.style.marginTop = "0px";
            }

            if(window.pageYOffset > maxscroll)
            {
                element.style.position = "absolute";
                element.style.marginTop = (pageheight - bottom - 40) + "px";
            }
        }
    }

顺便说一句,检查您是否为IF语句提供了正确的条件。如果你想要一个随网页滚动的菜单,那么你必须先交换两个条件。