您的当前位置:首页正文

如何使用jQuery实现页面的平滑滚动

来源:伴沃教育
平滑滚动是指在页面内滚动的行为,在网页中,我经常会看到诸如“返回顶部”之类的按钮,这就是使用平滑滚动实现的,接下来的这篇文章我们就来介绍使用jQuery实现平滑滚动的方法。

JavaScript

如何实现平滑滚动

JavaScript的代码如下

$(function(){
 $('a[href^="#"]').click(function(){
 var speed = 500;
 var href= $(this).attr("href");
 var target = $(href == "#" || href == "" ? 'html' : href);
 var position = target.offset().top;
 $("html, body").animate({scrollTop:position}, speed, "swing");
 return false;
 });
});

上述代码可以实现平滑滚动,你可以通过改变“speed”来更改滚动速度,另外,通过最后返回“false”,我们尽量不影响URL。

由于WordPress与“$”冲突,我们将“$”更改为“jQuery”,下面我们使用jQuery的动画标签来实现平滑滚动。

我们来看具体的示例

代码如下

HTML代码

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <link rel="stylesheet" href="sample.css" type="text/css">
 <script type="text/javascript" src="http://code.jquery.com/jquery-3.3.1.min.js"></script>
 <script>
 $(function(){
 $('a[href^="#"]').click(function() {
 var speed = 400; 
 var href= $(this).attr("href");
 var target = $(href == "#" || href == "" ? 'html' : href);
 var position = target.offset().top;
 $('body,html').animate({scrollTop:position}, speed, 'swing');
 return false;
 });
 });
 </script>
 <title>jQuery</title>
 </head>
 <body>
 <h1 id="index">目录</h1>
 <ul>
 <li><a href="#1">sample1</a></li>
 <li><a href="#2">sample2</a></li>
 <li><a href="#3">sample3</a></li>
 <li><a href="#4">sample4</a></li>
 </ul>
 <div id="1">
 <h2>sample1</h2>
 <a class="button" href="#index">Topへ</a>
 </div>
 <div id="2">
 <h2>sample2</h2>
 <a class="button" href="#index">Topへ</a>
 </div>
 <div id="3">
 <h2>sample3</h2>
 <a class="button" href="#index">Topへ</a>
 </div>
 <div id="4">
 <h2>sample4</h2>
 <a class="button" href="#index">Topへ</a>
 </div>
 </body>
</html>

CSS代码

div{
 height: 1000px;
}

运行结果如下:只截图了上面的部分,下面还有sample1、sample2、sample3、sample4。

JavaScript

显示全文