Jquery scrollTop()有偏移吗?

时间:2014-04-15 06:34:36

标签: jquery scroll

我正在使用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);

        });


    });

它工作正常,但我需要的是,不要将元素#third滚动到页面顶部,只是将它滚动到几个像px一样小的像100px,因为我想在之前的元素中留下一些东西要看那可能吗?

这是工作小提琴

http://jsfiddle.net/X9FUg/4/

我想留下黄色元素大约100px?

2 个答案:

答案 0 :(得分:4)

请注意,可能有更好的解决方案......但首先要考虑的是减去100个。

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

offset()。top返回一个没有'px'部分的数字,所以做offset()。top - 100应该可以正常工作。 (https://api.jquery.com/offset/

答案 1 :(得分:2)

是的,尝试使用以下解决方案,它将适合您。在这里你可以设置你想要的任何值而不是100。

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