尝试让页面滚动到锚点,我收到此错误。
无法读取未定义的属性“top”
现在我的JS就像以下......
//scroll to section process page
function scrollToAnchor(aid){
var aTag = $("div[name='"+ aid +"']");
$('html,body').animate({scrollTop: aTag.offset().top},'slow');
}
$("li.menu-item-141 a").click(function() {
scrollToAnchor('#philosophy-page');
});
这是我的HTML ...
<div class="container">
<div name="philosophy-page" id="philosophy-page">
<div class="philosophy-heading">
<h1>Philosophy</h1>
</div><!-- /.philosophy-heading -->
</div><!-- /#philosophy-page -->
</div><!-- /.container -->
任何帮助都会很棒!
谢谢!
答案 0 :(得分:12)
替换
scrollToAnchor('#philosophy-page');
通过
scrollToAnchor('philosophy-page');
请记住,您使用name
查找a
元素:
var aTag = $("div[name='"+ aid +"']");
jQuery找不到名为#philosophy-page
答案 1 :(得分:3)
$(function() {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
我找到的最佳滚动条。 在CSS技巧上找到它: https://css-tricks.com/snippets/jquery/smooth-scrolling/
答案 2 :(得分:1)
传递不带#
的ID,因为名称中没有#
。
更改
scrollToAnchor('#philosophy-page');
到的
scrollToAnchor('philosophy-page');