在加载时,跳转到div中的锚点

Mat*_*hew 2 html javascript xhtml jquery

假设我有以下页面:

<html>
<body>
<div id='foo' style='scroll:auto;height:400px'>
      // content, content, content...
      <div id='bar'></div>
      // content, content, content...
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我可以使用什么jQuery(或vanilla Javascript),以便在页面加载时,它仅在div#foo(而不是整个页面)跳转到#bar ?我不需要花哨的动画或滚动,我只是希望#bar在页面加载时位于div的顶部.

Rya*_*nch 7

jQuery解决方案(假设所有元素都以某种方式定位)

$('#foo').scrollTop($('#bar').position().top);
Run Code Online (Sandbox Code Playgroud)

编辑

旁注:确保您设置padding-top,bar而不是margin-top如果您想在它们之间foobar滚动之间放置一些空格.

编辑 DOM解决方案(无论元素是否已定位,请参阅@cobbals的jQuery等效答案):

document.getElementById('foo').scrollTop += document.getElementById('bar').offsetTop - document.getElementById('foo').offsetTop
Run Code Online (Sandbox Code Playgroud)