簡體   English   中英

在加載時,跳轉到div中的錨點

[英]On load, jump to anchor within a div

假設我有以下頁面:

<html>
<body>
<div id='foo' style='scroll:auto;height:400px'>
      // content, content, content...
      <div id='bar'></div>
      // content, content, content...
</div>
</body>
</html>

我可以使用什么jQuery(或vanilla Javascript),以便在頁面加載時,它僅在div#foo (而不是整個頁面) 跳轉到#bar? 我不需要花哨的動畫或滾動,我只是希望#bar在頁面加載時位於div的頂部。

jQuery解決方案(假設所有元素都以某種方式定位)

$('#foo').scrollTop($('#bar').position().top);

編輯

旁注:如果要在foobar之間放置一些空格,請確保在bar上設置padding-top而不是margin-top

編輯 DOM解決方案(無論元素是否已定位,請參閱@cobbals的jQuery等效答案):

document.getElementById('foo').scrollTop += document.getElementById('bar').offsetTop - document.getElementById('foo').offsetTop
$(document).ready(function() {
   $("#foo").scrollTop($("#foo #bar").position().top);
})

長期而且笨拙的,可能有一種縮短它的方法,但它每次都到了正確的地方。

$("#foo").scrollTop($("#foo").scrollTop() +
                    $("#bar").offset().top -
                    $("#foo").offset().top);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM