为什么滚动时元素的 scrollTop 属性 保持为 0?
Why does scrollTop property of element stay 0 when scrolling?
我正在尝试在项目中使用 scrollTop
属性。
但我做什么并不重要:它总是 returns 我 0
。我正在与 Chrome 合作。也尝试了 Firefox,结果相同。
我做了这个演示:
var wrap = document.querySelector('.wrap');
wrap.addEventListener('scroll', function() {
var sub = document.querySelector('.sub');
console.log(sub.scrollTop);
});
body {
background-color: white; }
.wrap {
padding: 10px;
border: 3px solid white;
background-color: white;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 600px;
height: 400px;
overflow: scroll; }
.sub {
height: 1200px;
width: 200px;
background: linear-gradient(orange, green, blue, red); }
<div class="wrap">
<div class="sub"></div>
</div>
我哪里错了?
分别:为什么我得到这些明显错误的值?
当它滚动到最底部时,我预计大约 800
。
scrollTop
属性 应该从实际的滚动元素中读取,.wrap
在您的情况下,而不是该元素的子元素。
而不是:
console.log(sub.scrollTop);
尝试:
console.log(wrap.scrollTop);
我正在尝试在项目中使用 scrollTop
属性。
但我做什么并不重要:它总是 returns 我 0
。我正在与 Chrome 合作。也尝试了 Firefox,结果相同。
我做了这个演示:
var wrap = document.querySelector('.wrap');
wrap.addEventListener('scroll', function() {
var sub = document.querySelector('.sub');
console.log(sub.scrollTop);
});
body {
background-color: white; }
.wrap {
padding: 10px;
border: 3px solid white;
background-color: white;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 600px;
height: 400px;
overflow: scroll; }
.sub {
height: 1200px;
width: 200px;
background: linear-gradient(orange, green, blue, red); }
<div class="wrap">
<div class="sub"></div>
</div>
我哪里错了?
分别:为什么我得到这些明显错误的值?
当它滚动到最底部时,我预计大约 800
。
scrollTop
属性 应该从实际的滚动元素中读取,.wrap
在您的情况下,而不是该元素的子元素。
而不是:
console.log(sub.scrollTop);
尝试:
console.log(wrap.scrollTop);