Javascript Scrolltop用于固定菜单位置

时间:2015-10-29 09:42:50

标签: javascript jquery html css navigation

我想在javascript中滚动几个像素之后粘贴我的菜单栏,但它不能正常工作。这是我的剧本。

JavaScript代码:

window.onscroll = function() {stick()};

function stick() {
    if (document.body.scrollTop || document.documentElement.scrollTop > 150) {
        document.getElementById("test").style.position = "fixed";
        document.getElementById("test").style.background = "blue";
    } else {
        document.getElementById("test").style.position = "initial";
    }
}

问题:
每当我滚动一个像素时,我的测试ID就会得到修复。我试图改变scrollTop值,但是没有效果。任何关注将不胜感激。

更新 使用ids也是错误。

<script>
document.getElementById("cntnr").onscroll = function() {stick()};

function stick() {
    if (document.getElementById("cntnr").scrollTop > 119) {
    document.getElementById("navdwn").style.position = "fixed";
    } else {
    document.getElementById("navdwn").style.position = "initial";
    }
}
</script>

3 个答案:

答案 0 :(得分:4)

验证您的If条件,将菜单当前文档滚动到150px顶部

变化:

window.onscroll = function() {stick()};

function stick() {
if (document.body.scrollTop > 150 ) {
    document.getElementById("test").style.position = "fixed";
    document.getElementById("test").style.background = "blue";
} else {
    document.getElementById("test").style.position = "initial";
}
}

答案 1 :(得分:1)

试试这段代码,你需要使用javascript的parseInt()函数来制作 document.documentElement.scrollTop等于整数

window.onscroll = function() {stick()};

var offset = document.documentElement.scrollTop

function stick() {
    if (parseInt(offset) > 150) {
       document.getElementById("test").style.position = "fixed";
       document.getElementById("test").style.background = "blue";
    } else {
       document.getElementById("test").style.position = "initial";
    }
}

答案 2 :(得分:1)

开始滚动后,MuAdapter= new muadapter(Activityname.this); // this line is broke. Use something like "MuAdapter muAdapter = new ..." mudapter.open(); // then this line can work ArrayList<String> list =getImagePath(); // not sure about this, but don't you need an objectrefernece here, that you call getImagePath() on?! 的值将大于document.body.scrollTop。如果第一个条件为真, OR 运算符将不会检查第二个条件

因此,一旦您开始滚动,第一个条件变为true,然后测试ID就会得到修复。

将条件更改为0,它会起作用。