相当于window.scrollY的div

问题描述 投票:0回答:2

使用普通JS来检测用户在div元素中垂直滚动了多少的最佳方法是什么?这些是我的代码片段:

html

<div id="blaaaa">
<!-- DIV CONTENT -->
</div>

js

document.getElementById('blaaaa').addEventListener('scroll', this.handleScroll);

handleScroll(e) {
  // I want to use an equivalent of window.scrollY but for a single div element
  var scrolled = window.scrollY;
  // ...
},

我该怎么做?

感谢您的回答。节日快乐!

javascript html dom
2个回答
1
投票

使用scrollTop

scrollTop
document.getElementById("container").addEventListener("scroll", evt => 
  console.log(evt.target.scrollTop)
)
#container {
  height: 300px;
  width: 300px;
  background: cyan;
  overflow-y: scroll;
}

#content {
  height: 1000px;
  width: 100%;
}

1
投票

如果问题是如何最好地使用JS来检测用户在div元素中垂直滚动了多少,对我来说这也意味着拥有易于阅读的代码,那么就是这样(但这是我的个人观点)。

<div id="container">
  <div id="content"></div>
</div>
const scrollVal = document.getElementById('scroll-val')
  ,   blaaaaElm = document.getElementById('blaaaa')
  ;
blaaaaElm.onscroll=e=>
  {
  scrollVal.textContent = blaaaaElm.scrollTop;
  }
#blaaaa {
  width: 100px;
  height: 100px;
  overflow-y: scroll;
  background-color: palegoldenrod;
}
© www.soinside.com 2019 - 2024. All rights reserved.