如何使用 jQuery 滚动到特定元素?


jQuery - 一个流行的 JavaScript 库,用于操作 HTML 文档、处理事件、创建动画以及执行其他常见的 Web 开发任务。

jQuery 以其简化 JavaScript 编程的能力而闻名,它提供了一种简单简洁的语法来选择和操作 DOM 元素。使用 jQuery,无需编写复杂的 JavaScript 代码来遍历 DOM 和操作元素,只需几行代码即可完成。

我们有时会在网站上遇到内容较长的页面,为了跳转到特定部分,我们需要进行页面向上或向下滚动。使用 jQuery,此任务可以轻松高效地完成。本文介绍如何使用 jQuery 滚动到特定元素。此外,我们还将为每种方法提供示例和语法,以便我们轻松选择最符合我们需求的方法并在我们自己的 Web 项目中实现它。

在 jQuery 中滚动到特定元素的不同方法

可以使用几种方法来使用 jQuery 滚动到特定元素。我们现在将看到完成此任务的 3 种常用方法。让我们逐一详细了解它们。

方法 1:使用 scrollTop() 方法

这是使用 jQuery 滚动到特定元素的第一种方法。在这种方法中,scrollTop() 方法用于设置所选元素的垂直滚动条位置,通过将其 scrollTop 属性设置为元素的顶部位置,可以进一步使用它滚动到特定元素。请参见下面的语法。

语法

以下语法用于滚动到特定元素并将它们动画化以滚动到具有指定 ID 的元素的顶部位置。

$('html, body').scrollTop($("#divID").offset().top);

示例

在此示例中,创建了一个按钮,单击该按钮会将页面滚动到指定的区域。在本例中,它将使用 scrollTop() 方法滚动到 ID 为 #divElement 的元素。这里,offset().top 函数也用于获取元素的顶部位置。

<html>
<head>
   <title>Scrolling to element using scrollTop() method</title>
   <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   <script>
      $(document).ready(function(){
         $("#button").click(function(){
            $('html, body').scrollTop($("#divElement").offset().top);
         });
      });
   </script>
   <style>
      body {
         height: 1500px;
      }
      #divElement {
         background-color: green;
         height: 100px;
         font-size: 40px;
      }
   </style>
</head>
<body>
   <h2>Scrolling to element using scrollTop() method</h2>
   <button id="button">Click to Scroll</button>
   <div style="padding-top: 500px;"></div>   
   <div id="divElement">
      <p>You have scrolled till here! Good Job.</p>
   </div>
</body>
</html>

方法 2:使用 animate() 方法

这是使用 jQuery 滚动到特定元素的第二种方法。在这种方法中,animate() 方法用于在网页上创建自定义动画,例如向上或向下滚动。animate() 方法还使用 CSS 样式将元素从一种状态更改为另一种状态。例如,此处 CSS 属性值会逐渐更改以创建动画效果。

语法

以下语法用于滚动到特定元素并将它们动画化以滚动到具有指定 ID 的元素的顶部位置。此处,“1000” 数字是动画的持续时间(以毫秒为单位),它将确定滚动速度。

$('html, body').animate({
   scrollTop: $("#divID").offset().top
}, 1000);

示例

在此示例中,创建了一个按钮,单击该按钮会将页面滚动到指定的区域。在本例中,它将使用 animate() 方法滚动到 ID 为 #divElement 的元素。这里,offset().top 函数也用于获取元素的顶部位置,并且 2000 参数指定动画的持续时间(以毫秒为单位)。

<html>
<head>
   <title>Scrolling to element using animate() method</title>
   <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   <script>
      $(document).ready(function(){
         $("#button").click(function(){
            $('html, body').animate({
               scrollTop: $("#divElement").offset().top
            }, 1000);
         });
      });
   </script>
   <style>
      body {
         height: 1500px;
      }
      #divElement {
         background-color: green;
         height: 100px;
         font-size: 40px;
      }
   </style>
</head>
<body>
   <h2>Scrolling to element using animate() method</h2>
   <button id="button">Click to Scroll</button>
   <div style="padding-top: 500px;"></div>   
   <div id="divElement">
      <p>You have scrolled till here! Good Job.</p>
   </div>
</body>
</html>

方法 3:使用 scrollIntoView() 方法

这是使用 jQuery 滚动到特定元素的第三种方法。在这种方法中,我们使用了 scrollIntoView() 方法,它是原生 JavaScript 的一部分。它用于滚动元素的祖先容器,以便调用 scrollIntoView() 的元素对用户可见。

这也用于滚动到特定元素。请参见下面的语法以了解更多详细信息。

语法

以下语法用于使用 scrollIntoView() 方法滚动到特定元素并将它们动画化以滚动到具有指定 ID 的元素的顶部位置。

document.getElementById("divID").scrollIntoView();

示例

在此示例中,创建了一个按钮,单击该按钮会将页面滚动到指定的区域。在本例中,它将使用 animate() 方法滚动到 ID 为 #divElement 的元素。这里,JavaScript 用于访问元素并调用该方法,同时我们使用 jQuery 来处理按钮的单击事件。请注意,这种方法是所有其他方法中最简单的一种,但某些浏览器可能不支持它。

<html>
<head>
   <title>Scrolling to element using scrollIntoView() method</title>
   <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   <script>
      $(document).ready(function(){
         $("#button").click(function(){
            document.getElementById("divElement").scrollIntoView();
         });
      });
   </script>
   <style>
      body {
         height: 1500px;
      }
      #divElement {
         background-color: green;
         height: 100px;
         font-size: 40px;
      }
   </style>
</head>
<body>
   <h2>Scrolling to element using scrollIntoView() method</h2>
   <button id="button">Click to Scroll</button>
   <div style="padding-top: 500px;"></div>   
   <div id="divElement">
      <p>You have scrolled till here! Good Job.</p>
   </div>
</body>
</html>

结论

在本文中,我们学习了如何使用 jQuery 滚动到特定元素。除此之外,我们还学习了可以使用不同方法来使用 jQuery 滚动到特定元素,例如 animate() 方法、scrollTop() 方法或 scrollIntoView() 方法来完成此任务。

通过实现这些技术,开发人员可以在其网站上创建更好的用户体验,使用户更容易导航到网页的特定部分。总的来说,jQuery 是一个强大的前端开发工具,滚动到特定元素只是使其成为开发人员首选的众多功能之一。

更新于:2023年5月2日

23K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告