2014-04-15 59 views
1

我使用jQuery的scrollTop的(),我有一些問題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滾動到頁面頂部,只需要在幾百像素之間滾動一下,比如100px,因爲我想在前一個元素中留下一些東西以便看到,這可能嗎?

這裏正在撥弄

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

我要離開了黃色元素被視爲abaout 100px的?

+1

'$(「#fourth」)。offset()。top - 100'? –

回答

3

注意,有可能是更好的解決方案......但spings想到的第一件事只是減去100

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

偏移()。頂部返回一個數字沒有「PX」部分,所以做offset()。top - 100應該工作得很好。 (https://api.jquery.com/offset/

2

是的,請嘗試下面的解決方案,它會爲你工作。在這裏,而不是100你可以設置任何你想要的值。

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