我尝试将页面滚动到具有id的特定元素,这很有效:
var $target = $('#people');
var scrolltop = $target.offset().top - 50;
$('html, body').animate({ scrollTop: scrolltop }, 'slow');
现在,我正在尝试使用location.hash
从网址获取$ target,但由于某种原因,它无法正常工作。
这是我的代码:
var $target = $(location.hash);
var scrolltop = $target.offset().top - 50;
$('html, body').animate({ scrollTop: scrolltop }, 'slow');
如果我检查$ target值是否正确,但是我收到此错误:
Cannot read property 'top' of undefined
。
知道为什么吗?
答案 0 :(得分:0)
我在另一段脚本中遇到了一个错误,它破坏了正常运行的代码。
无论如何,如果有人需要类似的话,我会发布解决方案。
if (location.hash) {
// take the hash from the url
var sectionUrl = location.hash;
// disable anchor “jump” when loading a page
setTimeout(function() {
window.scrollTo(0, 0);
}, 1);
// "jump" to the div with the location hash
setTimeout(function(){
$('html, body').stop().animate({
scrollTop: $(sectionUrl).offset().top - 50
}, 2000);
}, 1000)
}
答案 1 :(得分:0)
只需删除“-”和“ 50”之间的空格
将其设置为“ -50”
致力于挖掘,希望您也是如此。