jQuery滚动不适用于锚点

时间:2013-10-10 09:38:55

标签: javascript jquery html

我想将页面滚动到锚点链接。我正在使用以下代码:

$('a').click(function(){
        $('html, body').animate({
            scrollTop: $( $(this).attr('href') ).offset().top
        }, 400);
        return false;
    });

如果我有这样的网址,它可以正常工作:

<a href="#comments">Comments</a>

然而,问题是通过在当前网址的末尾添加#来自动生成网址,因此它将是:

<a href="http://example/sth/#comments">Comments</a>

在这个原因中,它不起作用。我无法更改URL的标记,如何修复jQuery以使用这样的URL?

2 个答案:

答案 0 :(得分:3)

您可以阅读主播的hash属性,而不是href

$('a').click(function(){
    $('html, body').animate({
        scrollTop: $(this.hash).offset().top
    }, 400);
    return false;
});

http://jsfiddle.net/KL5uw/

答案 1 :(得分:-1)

滚动到特定锚标记,这可以使用HTML Only

完成

例如:

<a name="top"></a>  // where we have to reach
<a href="#top">last</a>     // we reach their by clicking on this we can also use an image, align in right

Demo