Javascript 如何将滚动条滚动到页面中心?
我正在关注这个帖子 我确实喜欢这个答案,但当我使用它时,我的控制台出现了一个错误Javascript 如何将滚动条滚动到页面中心?,javascript,jquery,css,Javascript,Jquery,Css,我正在关注这个帖子 我确实喜欢这个答案,但当我使用它时,我的控制台出现了一个错误 $('body').animate({ scrollTop: $(this).offset().top - ($(window).height()-$(this).outerHeight(true)) / 2 }, 5000); 错误: 未捕获的TypeError:无法读取未定义的属性“top” 我不知道为什么$(this).offset()未定义。有人能帮我吗 谢谢 不要使用$(this)
$('body').animate({
scrollTop: $(this).offset().top - ($(window).height()-$(this).outerHeight(true)) / 2
}, 5000);
错误:
未捕获的TypeError:无法读取未定义的属性“top”
我不知道为什么$(this).offset()未定义。有人能帮我吗
谢谢 不要使用$(this)
,而是使用$('body').offset()
。看起来$(此)
是指没有偏移属性的窗口对象。请使用$(此)
,而不是使用$('body')。offset()
。看起来$(此)
是指没有偏移属性的窗口对象。请使用$(此)
,而不是使用$('body')。offset()
。看起来$(此)
是指没有偏移属性的窗口对象。请使用$(此)
,而不是使用$('body')。offset()
。看起来$(this)
是指没有偏移属性的窗口对象。您需要提到“this”代表什么。在您提到的示例中,他们使用的是“img”标记。改用这个:
$( document ).ready(function() {
$('body').animate({ scrollTop: $('body').offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2 }, 500);
});
此外,您可能希望将末尾的5000改为较小的数字。否则需要5秒钟才能滚动到页面中心 你需要提到“this”代表什么。在您提到的示例中,他们使用的是“img”标记。改用这个:
$( document ).ready(function() {
$('body').animate({ scrollTop: $('body').offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2 }, 500);
});
此外,您可能希望将末尾的5000改为较小的数字。否则需要5秒钟才能滚动到页面中心 你需要提到“this”代表什么。在您提到的示例中,他们使用的是“img”标记。改用这个:
$( document ).ready(function() {
$('body').animate({ scrollTop: $('body').offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2 }, 500);
});
此外,您可能希望将末尾的5000改为较小的数字。否则需要5秒钟才能滚动到页面中心 你需要提到“this”代表什么。在您提到的示例中,他们使用的是“img”标记。改用这个:
$( document ).ready(function() {
$('body').animate({ scrollTop: $('body').offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2 }, 500);
});
此外,您可能希望将末尾的5000改为较小的数字。否则需要5秒钟才能滚动到页面中心 我没有收到samei的任何错误我没有收到samei的任何错误我没有收到samei的任何错误我没有收到SAMEIntersting的任何错误,当OP在外部调用中显式使用$('body')
时怎么可能呢?我查看了一下jQuery源代码,动画似乎是在窗口的上下文中使用setTimeout而不是选择器运行的,虽然我可能错了,但这是一个非常复杂的库。但似乎是这样。我想我明白了,这是因为对$(This)
的调用不在函数内部,所以这是窗口。当你把一个函数传递给$时,我在想,在那里,这是当前的元素有趣的,当OP在外部调用中显式地使用$('body')
时,这怎么可能呢,动画似乎是在窗口的上下文中使用setTimeout而不是选择器运行的,虽然我可能错了,但这是一个非常复杂的库。但似乎是这样。我想我明白了,这是因为对$(This)
的调用不在函数内部,所以这是窗口。当你把一个函数传递给$时,我在想,在那里,这是当前的元素有趣的,当OP在外部调用中显式地使用$('body')
时,这怎么可能呢,动画似乎是在窗口的上下文中使用setTimeout而不是选择器运行的,虽然我可能错了,但这是一个非常复杂的库。但似乎是这样。我想我明白了,这是因为对$(This)
的调用不在函数内部,所以这是窗口。当你把一个函数传递给$时,我在想,在那里,这是当前的元素有趣的,当OP在外部调用中显式地使用$('body')
时,这怎么可能呢,动画似乎是在窗口的上下文中使用setTimeout而不是选择器运行的,虽然我可能错了,但这是一个非常复杂的库。但似乎是这样。我想我明白了,这是因为对$(This)
的调用不在函数内部,所以这是窗口。我在想,当你把一个函数传递给$时,
中,这是当前元素