我正在尝试将我的链接转到另一个网页上的锚点,在这种情况下是一个具有唯一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;
});
});
答案 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;