首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用锚点标签

禁用锚点标签
EN

Stack Overflow用户
提问于 2012-11-27 05:47:26
回答 4查看 696关注 0票数 1

如果页面上的链接改变了url,但不使用散列状态就不会改变页面,我该怎么做呢?

我想把链接,改变网址和滚动到页面的相应部分。我不想使用散列,因为它们只是跳转到部分,而不是滚动,而且我认为散列在url中看起来不是很好。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-27 05:49:15

看一看HTML5 Push State

据我所知,没有其他办法。

票数 3
EN

Stack Overflow用户

发布于 2012-11-27 05:49:20

您尝试过jQuery ScrollTo插件吗?http://archive.plugins.jquery.com/project/ScrollTo

票数 3
EN

Stack Overflow用户

发布于 2012-11-27 05:52:10

浏览器现在具有安全功能,可以确保地址栏中显示的URL与实际显示的内容相匹配。如果不同时更改页面,则无法更改位置。

但是,您可以在不更改URL的情况下将页面滚动到您喜欢的任何位置。要滚动到特定元素,请获取其位置并使用.animate()

代码语言:javascript
复制
$('body').animate({scrollTop: $('#element').position().top});

与使用e.preventDefault()取消​更改的.on('click',...)处理程序相结合,您就可以开始工作了。

代码语言:javascript
复制
$('a[href^=#]').on('click', function(e) { // apply to all hash links
    var el = $(this).attr('href');        // get the href
    e.preventDefault();                   // cancel default click action
    $('body').animate({
        scrollTop: $(el).position().top   // scroll to the href ID instead
    });
});​

http://jsfiddle.net/mblase75/WFKUE/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13573700

复制
相关文章

相似问题

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