【发布时间】:2018-08-05 16:28:53
【问题描述】:
我在 div 中淡入后出现滚动问题。它正常工作,当 div 可见时,但是当你点击导航时,它会导致它从不可见淡入然后滚动,我收到这个错误:
未捕获的类型错误:无法读取未定义的属性“substr”
HTML 代码
<nav><a href="#a1"></a><a href="#a2"></a><a href="#a3"></a></nav>
<main> /*in which i have few anchors to scroll to
<a name="a1"></a>
/*some code
<a name="a2"></a>
/*some code
<a name="a3"></a>
/*some code
</main>
<div id="additionalinfo" style="display: none"> /* div which goes in when main fadesout and viceversa
/*some code
</div>
jQuery
$('nav a[href^="#"]').click(function () {
if ($('#additionalinfo').is(":visible")) {
$('#additionalinfo').fadeOut(function () {
$('main').fadeIn(function () {
$('html, body').animate({
scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
}, 500);
return false;
});
});
}
想了很多办法,还是没能成功。我在这里尝试做的是,当你在#additionalinfo 处单击导航时,div 正在淡出,main 正在淡入,然后它应该滚动到 main 中的正确锚点。最后一部分根本不起作用。有什么想法吗?
【问题讨论】:
标签: javascript jquery html css scroll