在JQuery中使用偏移量在div上创建锚点

时间:2015-03-16 14:21:39

标签: jquery html5

我正在尝试将我的链接转到另一个网页上的锚点,在这种情况下是一个具有唯一ID的div。但是,由于有一个CSS定位设置为固定的菜单(在div的顶部),我需要抵消我对这个' top'是生效的。我试过以下代码,但没有运气。欢迎任何帮助

 <a href="contact-us.html#book" class="book">Book a Place</a>  

在文档就绪中使用一些JQuery;

$('a[href^=".book"]').on('click',function (e) {
        e.preventDefault();

        var target = this.hash;
        var $target = $(target);

        $('html, body').stop().animate({
            'scrollTop': $target.offset().top
        }, 900, 'swing', function () {
            window.location.hash = target;
        });
    });  

1 个答案:

答案 0 :(得分:2)

$('a[href^=".book"]')尝试选择a属性以“.book”开头的href元素。您的a元素href以“contact-us”开头,根本不包含“.book”。 .book本身就是一个类选择器,并尝试选择class属性等于“book”的元素。因此,我认为你打算做的只是:

$('a.book').on('click',function (e) { ... })

更改后,您的a元素没有hash属性。要从#book元素a获取href值,您必须单独提取该值。请记住,您必须已经在/contact-us.html上才能使用此功能,您可以改为将href更改为#book

<a href="#book" class="book"> ... </a>

然后拉出整个href

var target = this.href;