我有一个滚动到顶部的链接
<a href="index.html?test=test#slides-1" id="re" class="ancLinks"></a>
$("a.ancLinks").click(function (){
elementClick = $("this").attr("href");
$('html, body').animate({
scrollTop: $(elementClick).offset().top
}, 1000);
});
当我取出url(index.html?test = test)时,它可以工作。但我需要绝对链接在网址中。出了什么问题
答案 0 :(得分:3)
我想你想要:
$("a.ancLinks").click(function (e){
e.preventDefault();
elementClick = this.hash;
$('html, body').animate({
scrollTop: $(elementClick).offset().top
}, 1000);
});
答案 1 :(得分:0)
您正在尝试获取元素的偏移位置,该元素归结为“index.html?test = test#slide-1”,这不是元素而是URI。
应该从真实的DOM元素(可能是目标)获取元素偏移量。您可以通过执行以下操作来实现此目的:
$('a.ancLinks').click(function(event) {
var $this = $(this),
href = $this.attr('href'),
target = $this.data('target') || (href.indexOf('#') !== -1 ? '#'+href.split('#').pop() : false);
if (!target) return true;
var $target = $(target);
if ($target.length == 0) return true;
event.preventDefault();
var offset = $target.offset();
$('html, body').animate({
scrollTop: offset.top || 0
});
});
适用于<a href="anyurl.html#your-html-ID">
和<a href="anypage.html" data-target="#your-html-ID">