我正在使用Chris Coyier的插件(实际上,它是Devin Sturgeon的修改版本)来动画滚动到锚点链接:
// Easing for links pointing to anchors
$(document).ready(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;
}
}
});
});
在我使用jQuery应用溢出值之前,它完美运行。例如,在关闭模态窗口后,这段代码负责隐藏水平溢出并将垂直溢出设置为auto:
$('.file-content a.close-reveal-modal').on('click', function() {
$('html, body').css({
'overflow-y' : 'auto',
'overflow-x' : 'hidden'
});
});
应用这些值后,动画滚动到锚点链接的插件将停止工作,单击它们不会产生任何结果。如果我在关闭模态时删除负责设置溢出的代码,那么Chris'插件每次都会像魅力一样。
为什么会这样?
非常感谢任何形式的帮助!
答案 0 :(得分:2)
我不知道这是否对您有所帮助,但我发现这是提示: http://upshots.org/javascript/jquery-get-real-height-of-hidden-or-overflow-hidden-elements
您是否尝试过调试?
因为我怀疑在你的例子中
target.offset().top