Jquery scrollTop()和offset一起使用?

6
我正在使用jquery的scrollTop()方法,但是遇到了一些问题。
这是HTML。
<a class="jumper" href="#first">Jump</a>

<div class="first"></div>
<div id="second"></div>
<div id="third"></div>
<div id="fourth"></div>
<div id="fifth"></div>

还有jQuery

  $(document).ready(function () {

        $('.jumper').click(function () {

            $('html, body').animate({
                scrollTop: $("#fourth").offset().top
            }, 2000);

        });


    });

它的工作正常,但我需要的不是将第三个元素滚动到页面顶部,而是将其滚动到稍微低于100像素的位置,因为我想让前一个元素保持可见,这可能吗?
以下是有效的代码示例: http://jsfiddle.net/X9FUg/4/ 我希望黄色元素保持大约100像素的可见性。

1
$("#fourth").offset().top - 100 - Terry Seidler
2个回答

14

请注意,可能有更好的解决方案......但第一件想到的是减去100。

$("#fourth").offset().top - 100

offset().top返回的是不带'px'的数字,因此执行offset().top - 100应该可以很好地工作。 (https://api.jquery.com/offset/)


3

是的,尝试以下解决方案,它将为您工作。在这里,您可以设置任何您想要的值,而不是100。

    $(document).ready(function () {
        $('.jumper').click(function () {
            $('html, body').animate({
              scrollTop: $("#fourth").offset().top - 100
            }, 2000);
        });
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接