我希望页面在页面加载时根据哈希URL平滑滚动到锚点。
即
www.domain.com/pagename/#matches
我有这个,但它不起作用
var elem = $('#_' + window.location.hash.replace('#', ''));
if(elem) {
$('html,body').animate({
scrollTop: $('#' + elem).offset().top-65
}, 1000);
return false;
}
控制台错误
语法错误,无法识别的表达式:#[object Object]
更新
我使用了
if(window.location.hash) {
var elem = window.location.hash;
$('html,body').animate({
scrollTop: $(elem).offset().top-65
}, 1000);
return false;
}
然而,当动画结束时,默认的锚定动作会启动,从而跳转页面并忽略我试图实现的偏移
答案 0 :(得分:0)
如果我正确理解了您的问题,请检查是否找到了哈希,然后从网址中提取并将其传递给scrollTop
。
if(window.location.hash) {
var hash = window.location.hash.substring(1);
$(document.body).animate({
'scrollTop': $('#' + hash).offset().top
}, 2000);
}