Javascript 如何从元素内部获取scrollTop?

Javascript 如何从元素内部获取scrollTop?,javascript,Javascript,我有一个div元素,它还有一些其他元素,比如p标签和菜单。当用户向下滚动大约100像素时,我希望菜单向菜单添加一个类。所以我想知道如何得到滚动的距离 <script type="text/javascript"> var x = document.getElementById("scrollElement"); function myFunction() { alert(x.scrollTop); } </script> var x=docume

我有一个div元素,它还有一些其他元素,比如p标签和菜单。当用户向下滚动大约100像素时,我希望菜单向菜单添加一个类。所以我想知道如何得到滚动的距离

<script type="text/javascript">
  var x = document.getElementById("scrollElement");

  function myFunction() {
    alert(x.scrollTop);
  }
</script>

var x=document.getElementById(“scrollElement”);
函数myFunction(){
警报(x.scrollTop);
}
我创建了一个plunkr来模拟这种情况。问题是,当我滚动并检查scrollTop值时,它会输出
0

这是

为什么要投否决票?这是一个普通的javascript问题,它有一个明确的问题示例:/

试试这个

//代码在这里

window.addEventListener('scroll',function(){
  let scrollTop=document.body.scrollTop || document.documentElement.scrollTop;
     if(scrollTop>100){alert(scrollTop)}
},false);
试试这个

//代码在这里

window.addEventListener('scroll',function(){
  let scrollTop=document.body.scrollTop || document.documentElement.scrollTop;
     if(scrollTop>100){alert(scrollTop)}
},false);

元素。scrollTop
本质上是DIV的上边框和DIV的最上面可见线之间的距离。为了更好的理解

var container=document.querySelector(“.container”),
p=document.querySelector(“p.child”);
container.addEventListener('scroll',function(){
如果(container.scrollTop>100)
p、 添加('red');
其他的
p、 classList.remove('red');
});
.container{
最大高度:200px;
边框:1px纯黑;
溢出y:自动;
}
h1.儿童{
文本对齐:居中;
高度:400px;
}
p、 儿童红{
颜色:红色;
}

你好

Lorem ipsum door sit amet,一位杰出的领导者,他是一位临时劳工和职业经理人。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除了偶尔出于谨慎,不能因为工作上的过失而受到劳动的伤害。知识本身就是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除了偶尔出于谨慎,不能因为工作上的过失而受到劳动的伤害。知识本身就是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


元素。scrollTop
本质上是DIV顶部边框和DIV顶部最可见线之间的距离。为了更好的理解

var container=document.querySelector(“.container”),
p=document.querySelector(“p.child”);
container.addEventListener('scroll',function(){
如果(container.scrollTop>100)
p、 添加('red');
其他的
p、 classList.remove('red');
});
.container{
最大高度:200px;
边框:1px纯黑;
溢出y:自动;
}
h1.儿童{
文本对齐:居中;
高度:400px;
}
p、 儿童红{
颜色:红色;
}

你好

Lorem ipsum door sit amet,一位杰出的领导者,他是一位临时劳工和职业经理人。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除了偶尔出于谨慎,不能因为工作上的过失而受到劳动的伤害。知识本身就是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除了偶尔出于谨慎,不能因为工作上的过失而受到劳动的伤害。知识本身就是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


请查看我的答案,我相信它符合您的要求:)是的,在我的项目中实施它。然后,我将向上投票,请检查我的答案,我相信它有你想要的:)是的,在我的项目中实施它。然后我要投票给yaThanks,我花了一段时间才弄明白为什么它对我不起作用。但是当你有一个ng if时,滚动就不起作用了。奇怪,谢谢,我花了一段时间才弄明白为什么它对我不起作用。但是当你有一个ng if时,滚动就不起作用了。奇怪。