如何使用JQuery滚动到元素?

2 html javascript css jquery dom

我希望页面滚动到页面顶部的div。我在页面的其他部分有按钮,但是当我滚动到底部并单击该按钮时,此按钮不起作用,它没有转到页面的顶部。这是CodePen:https://codepen.io/Filizof/pen/xygWyp editors = 1010

$(document).ready(function() {
$("#btn1").click(function() {
$("body").scrollTo("#menudiv");
});
});
Run Code Online (Sandbox Code Playgroud)

小智 7

JavaScript 有这个element.scrollIntoView()功能。

就像是:

$("#menudiv")[0].scrollIntoView()
Run Code Online (Sandbox Code Playgroud)


MWD*_*MWD 7

JAVASCRIPT解答:

如果您想使用“纯javascript”顺利滚动到某个元素,则可以执行以下操作:

document.querySelector('#menudiv').scrollIntoView({
  behavior: 'smooth' 
});
Run Code Online (Sandbox Code Playgroud)

例如:https//codepen.io/anon/pen/OBzbdY

注意:有关最新的浏览器支持,请参阅https://caniuse.com/#feat=scrollintoview


JQUERY解答:

如果您想使用“ jquery”平滑滚动到某个元素,则可以执行以下操作:

$(document).ready(function() {
  $("#btn1").click(function() {
    $("body,html").animate(
      {
        scrollTop: $("#menudiv").offset().top
      },
      800 //speed
    );
  });
});
Run Code Online (Sandbox Code Playgroud)

例如:https//codepen.io/anon/pen/MPrJjo

  • 与 jquery 相比,我第一次看到纯 javascript 中相同任务的干净且更少的代码。 (5认同)
  • 如果您选择“body,html”,则会滚动两次。您可以简单地使用 `$("html").animate()` (2认同)

小智 3

您可以使用简单的 JS 来完成此任务。scrollIntoView() 滚动到可见区域。

像这样的东西:

var elmnt = document.getElementById("content");
elmnt.scrollIntoView();
Run Code Online (Sandbox Code Playgroud)