Javascript 导航栏a在特定滚动后更改颜色
我有个问题似乎解决不了。所以,我想做的是滚动到一定距离(最好滚动到特定的div框);导航栏Javascript 导航栏a在特定滚动后更改颜色,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我有个问题似乎解决不了。所以,我想做的是滚动到一定距离(最好滚动到特定的div框);导航栏 Välkommen直到min hemsida! Om米格 知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。 有问题吗?电邮至 你将随风旅行。蒲公英之旅。 window.onscroll=function(){scrollFunct
-
-
-
Välkommen直到min hemsida!
Om米格
知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。
有问题吗?电邮至
你将随风旅行。蒲公英之旅。
window.onscroll=function(){scrollFunction()};
函数滚动函数(){
if(document.body.scrollTop>130 | | document.documentElement.scrollTop>130){
document.getElementById(“hem”).style.top=“0”;
}否则{
document.getElementById(“hem”).style.top=“-10rem”;
}
}
附:链接的js文件是视差效果滚动
谢谢你的帮助
演示:我知道这不是这个问题的最佳解决方案。如果你有很多链接,但只是为了给你一个解决方案,那就需要很多代码 这样做的目的是获得触发样式更改的div的偏移量。并收听您的window onscroll活动。无论何时到达div的开头,都会添加一个预定义的类,并在离开div时将其删除 就你而言: html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="main.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/parallax.js/1.4.2/parallax.min.js"></script>
</head>
<body>
<main class="parallax-window" data-parallax="scroll" data-image-src="https://i.pinimg.com/originals/bb/e7/42/bbe742c899cb149fadfc5dba9117311b.jpg">
<header>
<nav class="nav1">
<ul>
<li>
<a id="link1">
<span>hem</span>
</a>
</li>
<li>
<a id="link2">
<span>om mig</span>
</a>
</li>
<li>
<a>
<span>mitt arbete</span>
</a>
</li>
</ul>
</nav>
</header>
<div id="div"></div>
<div id="divv"></div>
</main>
</body>
</html>
js:
let div=document.getElementById(“div”);
设divv=document.getElementById(“divv”);
让link1=document.getElementById(“link1”);
让link2=document.getElementById(“link2”);
//抵消
设divOffset=div.offsetTop;
设divvOffset=divv.offsetTop;
//在类进入范围时设置该类
window.onscroll=()=>{
如果(window.pageYOffset>=divOffset&&window.pageYOffset=divvOffset){
link2.classList.add(“新类”)
}否则{
link2.classList.remove(“newClass”);
}
}
ps:这不是一个完美的解决方案,您可以使用JQuery轻松地完成这项工作。您可以检查此链接以使用它。
希望对您有所帮助我知道这不是解决此问题的最佳方案。如果你有很多链接,但只是为了给你一个解决方案,那就需要很多代码 这样做的目的是获得触发样式更改的div的偏移量。并收听您的window onscroll活动。无论何时到达div的开头,都会添加一个预定义的类,并在离开div时将其删除 就你而言: html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="main.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/parallax.js/1.4.2/parallax.min.js"></script>
</head>
<body>
<main class="parallax-window" data-parallax="scroll" data-image-src="https://i.pinimg.com/originals/bb/e7/42/bbe742c899cb149fadfc5dba9117311b.jpg">
<header>
<nav class="nav1">
<ul>
<li>
<a id="link1">
<span>hem</span>
</a>
</li>
<li>
<a id="link2">
<span>om mig</span>
</a>
</li>
<li>
<a>
<span>mitt arbete</span>
</a>
</li>
</ul>
</nav>
</header>
<div id="div"></div>
<div id="divv"></div>
</main>
</body>
</html>
js:
let div=document.getElementById(“div”);
设divv=document.getElementById(“divv”);
让link1=document.getElementById(“link1”);
让link2=document.getElementById(“link2”);
//抵消
设divOffset=div.offsetTop;
设divvOffset=divv.offsetTop;
//在类进入范围时设置该类
window.onscroll=()=>{
如果(window.pageYOffset>=divOffset&&window.pageYOffset=divvOffset){
link2.classList.add(“新类”)
}否则{
link2.classList.remove(“newClass”);
}
}
ps:这不是一个完美的解决方案,您可以使用JQuery轻松地完成这项工作。您可以检查此链接以使用它。
希望这是有帮助的检查此if help检查此if help嗯,您发送的链接正是我需要的。但问题是,我似乎无法让它为我工作,我还想知道,当到达特定的div时,是否可以更改span元素的颜色。请看我更新的JSFIDLE以便更好地理解:)如果链接中的代码不起作用,请尝试使用我提供给您的代码,它应该会起作用,我在您的项目中尝试了您在问题中提供的链接。很好,但我有更多的链接(标记)。我应该添加额外的链接(链接3、链接4等)?这将是一个很长的代码,但你可以使用这个代码,比如在数组中添加元素,并根据当前元素偏移量执行条件。代码确实有效,但当我尝试添加额外的链接时,我的导航栏似乎没有明显的原因就消失了。它只适用于您设置代码的方式;我不能让它以任何其他方式工作…嗯,你发送的链接正是我需要的。但问题是,我似乎无法让它为我工作,我还想知道,当到达特定的div时,是否可以更改span元素的颜色。看看我更新的JSFIDLE to un
let div = document.getElementById("div");
let divv = document.getElementById("divv");
let link1 = document.getElementById("link1");
let link2 = document.getElementById("link2");
//getting offset
let divOffset = div.offsetTop;
let divvOffset = divv.offsetTop;
//setting the class when it enters the range
window.onscroll = ()=>{
if (window.pageYOffset >= divOffset && window.pageYOffset <= divvOffset) {
link1.classList.add("newClass")
} else {
link1.classList.remove("newClass");
}
if (window.pageYOffset >= divvOffset) {
link2.classList.add("newClass")
} else {
link2.classList.remove("newClass");
}
}