JQuery / Javascript隐藏菜单SlideUp效果

时间:2018-04-04 14:14:40

标签: javascript jquery twitter-bootstrap function

我试图在我的bootstrap导航栏上实现SlideDown / SlideUp类型效果。

我添加了一个标准的javascript函数,如下所示。但它似乎没有工作,并与页面滚动功能冲突。有可能解决这个问题吗?

代码:https://codepen.io/anon/pen/VXGYBq

window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
document.getElementsByClassName("navbar").style.top = "0";
} else {
document.getElementsByClassName("navbar").style.top = "-50px";
}
}

2 个答案:

答案 0 :(得分:0)

替换
    document.getElementsByClassName(" navbar")by document.querySelector(。" navbar").......

所以你的代码应该是这样的:

window.onscroll = function() {scrollFunction()};
function scrollFunction() {
    if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
document.querySelector(".navbar").style.top = "0";
} else {
document.querySelector(".navbar").style.top = "-50px";
  }
}

你不能输入getElementsbyClassName,因为你只有一个元素。 所以最好为这类事做一个querySelector

答案 1 :(得分:0)

window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
document.getElementsByClassName("navbar")[0].style.top = "0";
} else {
document.getElementsByClassName("navbar")[0].style.top = "-50px";
}
}

document.getElementsByClassName返回此类的所有元素 你需要在它之后添加[0]