我正在研究一个jQuery函数,它在点击时滚动到div。现在它会滚动到顶部,我想知道它们是否可以让它滚动到$('.scrollit')
的中心而不是顶部,或者可能是一种方法来将它偏移一些像素数量?
$(".playbox").on('click', function () {
$('.scrollit').animate({
scrollTop: $(this).offset().top
}, 1000);
答案 0 :(得分:8)
您可以使用元素的高度。
scrollTop: $(this).offset().top + $(this).height() / 2;
将元素高度的一半添加到scrollTop以滚动到元素的中心。
答案 1 :(得分:1)
另一个答案有两个主要区别。如果您添加或删除偏移量,则相关,因此我将加号与减去进行交换。我使用屏幕尺寸作为参考,而不是元素。要为滚动设置动画并在函数中换行是可选的。
function scrollTo (id) {
$('html,body').animate({
scrollTop: $("#"+id).offset().top - $(window).height()/2
}, 1000);
}