禁用锚标记

时间:2012-11-26 21:47:26

标签: javascript jquery

如何在更改网址的网页上放置链接,但不使用哈希状态更改网页?

我想放置更改网址的链接并滚动到页面的相应部分。我不想使用哈希,因为他们只是跳到该部分而不是滚动,我认为哈希在网址中看起来不是很好。

4 个答案:

答案 0 :(得分:3)

查看HTML5 Push State

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

浏览器现在具有安全功能,可确保位置栏中显示的URL与实际显示的URL相匹配。您无法在不更改页面的情况下更改位置。

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

$('body').animate({scrollTop: $('#element').position().top});

将其与.on('click',...)处理程序结合使用,e.preventDefault()处理程序使用$('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 }); });​ 取消网址更改,您就可以开始使用了。

{{1}}

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

答案 3 :(得分:0)

HTML5浏览器历史记录(又名PushState)是现代方法

https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

它在浏览器中得到了广泛的支持

http://caniuse.com/history