[英]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);
編輯
旁注:如果要在foo
和bar
之間放置一些空格,請確保在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.