【问题标题】:Incorrect height with scrollTopscrollTop 高度不正确
【发布时间】:2015-10-02 01:55:24
【问题描述】:

我正在尝试计算用户滚动的像素数,但 scrollTop 显示的总和与定义的不同窗口高度的总和不同。

HTML

<body>
<div class="slide slide1">
</div>
<div class="slide slide2">
</div>
<div class="slide slide3">
</div>
<div class="slide slide4">
</div>
<div class="slide slide5">
</div>

</body>

CSS

html, body {
    height: 100%;
}

.slide {
    width: 100%;
    height: 100%; 
}

.slide1 {
    background: red;
}

.slide2 {
    background: blue;
}

.slide3 {
    background: yellow;
}

.slide4 {
    background: green;
}

.slide5 {
    background: gray;
}

JS

$(document).ready(function(){

        $(window).scrollTop($(document).height());

        $('h2').text($(window).height() + 'px');
        $('h1').text($(document).scrollTop() + 'px');

        $(window).scroll(function () {
            $('h1').text( $(this).scrollTop() + 'px');
        });
});

小提琴https://jsfiddle.net/w9bxhsvj/2/

例如,如果窗口高度为 611px,并且有 5 个高度为 100% 的 div,则 scrollTop 的值应该是 3055px,但它显示的是 2452px。 ¿ 我做错了什么?

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    这是一个填充/边距问题。

    padding:0; margin:0; 申请到html, body, h1, h2 它会解决你的问题。

    https://jsfiddle.net/w9bxhsvj/4/

    【讨论】:

    • 第一个好像不算数。
    • 计数从 0 开始,滚动到顶部给出 0。
    • 使用$(window).scrollTop() + $(window).height()
    猜你喜欢
    • 2014-05-15
    • 2015-08-29
    • 1970-01-01
    • 2018-08-26
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多