在我的 HTML 页面上,我希望能够“转到”/“滚动到”/“关注”页面上的某个元素。
通常,我会使用带有 href="#something"
的 anchor 标记,但我已经将 hashchange 事件与 BBQ plugin 一起使用。加载此页面。
那么有没有其他方法可以通过 JavaScript 让页面转到页面上的给定元素?
这是我正在尝试做的基本大纲:
function focusOnElement(element_id) {
$('#div_' + element_id).goTo(); // need to 'go to' this element
}
<div id="div_element1">
yadda yadda
</div>
<div id="div_element2">
blah blah
</div>
<span onclick="focusOnElement('element1');">Click here to go to element 1</span>
<span onclick="focusOnElement('element2');">Click here to go to element 2</span>
最佳答案
如果该元素当前在页面上不可见,可以使用原生 scrollIntoView()
方法。
$('#div_' + element_id)[0].scrollIntoView( true );
其中true
表示对齐页面顶部,false
表示对齐底部。
否则,有 a scrollTo()
plugin对于 jQuery,您可以使用。
或者也许只是得到 top
position()
(docs)元素,并设置 scrollTop()
(docs)到那个位置:
var top = $('#div_' + element_id).position().top;
$(window).scrollTop( top );
https://stackoverflow.com/questions/4801655/