JavaScript实现导航栏吸顶与平滑滚动效果
作者:木棉时间:2026-10-21 22:41:01浏览:399
本文通过JavaScript代码示例,演示如何实现网页导航栏的吸顶效果以及点击导航项时的平滑滚动功能。文章提供了完整的HTML结构、CSS样式及JS逻辑,帮助开发者快速掌握相关前端交互技巧。
导航吸顶与平滑滚动实现
具体实现代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>38demo</title>
<link rel="stylesheet" href="img/mobile-reset.css" rel="external nofollow" />
<style type="text/css">
html,body{
width:100%;
height:100%;
}
.title{
width:100%;
margin-bottom:20px;
background: #fff;
}
.titleTap{
position:fixed;
left:0;
top:0;
}
.a1{
margin-top:20px;
}
.title li{
width:33%;
float:left;
text-align: center;
}
.content{
text-align: center;
margin-top:20px;
z-index:100;
}
</style>
</head>
<body>
<!--other-->
<div class="topHeight">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
</div>
<!--title-->
<ul class="title clearfix">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<!--content-->
<ul class="content a1">
<li>11</li>
<li>13</li>
<li>14</li>
<li>21</li>
<li>22</li>
<li>23</li>
</ul>
<ul class="content a2">
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>21</li>
<li>22</li>
<li>23</li>
</ul>
<ul class="content a3">
<li>31</li>
<li>32</li>
<li>33</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>31</li>
<li>32</li>
<li>33</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>31</li>
<li>32</li>
<li>33</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>31</li>
<li>32</li>
<li>33</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>31</li>
<li>32</li>
<li>33</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>31</li>
<li>32</li>
<li>33</li>
<li>21</li>
<li>22</li>
<li>23</li>
</ul>
<script src="js/jquery-1.11.3.min.js"></script>
<script>
function nav(){
var height=0;
height = $(".topHeight").height();
$(window).scroll(function() {
var w = $("body").scrollTop() || $(document).scrollTop(); //获取滚动值
if(w > height) {
$(".title").addClass("titleTap");
} else if(w <= 0){
$(".title").removeClass("titleTap")
}else{
$(".title").removeClass("titleTap")
}
});
}
nav();
$(function() {
$(".title li").click(function() {
var index = $(this).index();
var offsetH = $(".content").eq(index).offset().top;
console.log(index);
console.log(offsetH); $("body").animate({
scrollTop: offsetH-20,
}, 500);
})
})
</script>
</body>
</html>
以上内容为本文的全部分享,期望这些代码示例能对读者的学习或实际工作产生积极帮助。同时,也欢迎大家继续支持本站,获取更多技术资源。
作者最新文章
JS合并多个数组的三种方法:concat、spread与flat
2026-11-05 17:39:45
JavaScript怎么准确判断数据类型:typeof、instanceof与Object.prototype.toString
2026-11-05 17:09:21
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
