Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将滚动条滚动到页面中心?_Javascript_Jquery_Css - Fatal编程技术网

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)
的调用不在函数内部,所以这是
窗口。我在想,当你把一个函数传递给
$时,
中,这是当前元素