Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不使用JQuery的情况下更改滚动位置处的div样式_Javascript_Css - Fatal编程技术网

Javascript 在不使用JQuery的情况下更改滚动位置处的div样式

Javascript 在不使用JQuery的情况下更改滚动位置处的div样式,javascript,css,Javascript,Css,我对网页设计还比较陌生,还没有准备好深入JQuery,但我开始根据需要使用Javascript。我不知道如何在某个滚动位置更改div菜单栏的背景色 CSS Javascript var scrollHeight = window.pageYOffset; if (scrollHeight >= 100) { document.getElementById("mainMenu").style.backgroundColor = "green"; } 从我作为noob可以看出,if

我对网页设计还比较陌生,还没有准备好深入JQuery,但我开始根据需要使用Javascript。我不知道如何在某个滚动位置更改div菜单栏的背景色

CSS

Javascript

var scrollHeight = window.pageYOffset;

if (scrollHeight >= 100) {
    document.getElementById("mainMenu").style.backgroundColor = "green";
}

从我作为noob可以看出,if语句只在加载时运行,var scrollHeight不会随着用户滚动而更新。我感谢任何帮助使这项工作!我将开始学习JQuery,但我想在涉足库之前更好地理解该语言。

对–您需要设置一些东西,继续检查滚动位置并相应地更新:

function checkPosition() {

  // Continue calling this function:
  requestAnimationFrame(checkPosition);

  // Check your position here

}
// Initial Call:
checkPosition();
更好的是,继续读下去

编辑:

此外,我建议添加或删除类,而不是直接操作样式:

element.classList.add("newClass");

顺便说一句,jQuery实际上比“常规”javascript更容易。

在你成为一名优秀的程序员之前,你必须成为一名优秀的搜索者。哈哈。说真的,这个话题在互联网上到处都有。沿着javascript搜索检测滚动位置互联网上充满了讨论滚动位置的资源。但是我被迭代scroll函数的各种方法弄糊涂了,因为似乎有多个选项,而我似乎无法完成任何工作。这些资源中似乎有90%或更多都使用JQuery,所以我计划学习它。谢谢你的帮助。谢谢你的帮助!我阅读了requestAnimationFrame函数-非常漂亮。在Javascript中添加类而不是操纵样式的好处是什么?实际上有很多好处。首先,关注点分离:您可以将所有样式信息保留在css中,而javascript可以只关注功能。但除此之外,跟踪事情更容易。您不必添加F00颜色,然后尝试撤消该更改,只需再次打开和关闭警报类即可。@PhilipJarrett模块化、灵活性和易管理性。利远大于弊。把样式放在样式表中,你会很高兴你这么做了。
element.classList.add("newClass");