首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将HTML页面滚动到给定的锚点

如何将HTML页面滚动到给定的锚点
EN

Stack Overflow用户
提问于 2010-07-02 14:18:50
回答 12查看 535.1K关注 0票数 288

我想让浏览器将页面滚动到给定的锚点,只需使用JavaScript即可。

我在HTML代码中指定了nameid属性:

代码语言:javascript
复制
 <a name="anchorName">..</a>

代码语言:javascript
复制
 <h1 id="anchorName2">..</h1>

我希望获得与您导航到http://server.com/path#anchorName相同的效果。应该滚动页面,使锚点位于页面可见部分的顶部附近。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-07-02 14:25:25

代码语言:javascript
复制
function scrollTo(hash) {
    location.hash = "#" + hash;
}

根本不需要jQuery!

票数 379
EN

Stack Overflow用户

发布于 2010-07-03 09:24:25

更简单的方法:

代码语言:javascript
复制
var element_to_scroll_to = document.getElementById('anchorName2');
// Or:
var element_to_scroll_to = document.querySelectorAll('.my-element-class')[0];
// Or:
var element_to_scroll_to = $('.my-element-class')[0];
// Basically `element_to_scroll_to` just have to be a reference
// to any DOM element present on the page
// Then:
element_to_scroll_to.scrollIntoView();
票数 254
EN

Stack Overflow用户

发布于 2010-07-02 14:22:21

您可以使用jQuery的.animate().offset()scrollTop。喜欢

代码语言:javascript
复制
$(document.body).animate({
    'scrollTop':   $('#anchorName2').offset().top
}, 2000);

链接示例:http://jsbin.com/unasi3/edit

如果不想设置动画,请使用.scrollTop(),如下所示:

代码语言:javascript
复制
$(document.body).scrollTop($('#anchorName2').offset().top);

或者JavaScript的原生location.hash,比如:

代码语言:javascript
复制
location.hash = '#' + anchorid;
票数 125
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3163615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档