JavaScript实现导航栏吸顶效果详解

作者:竹影

时间:2026-10-23

浏览:142

本文介绍如何利用JavaScript结合scroll与offset系列属性,实现导航栏在页面滚动至特定位置时的吸顶效果。通过监听滚动事件,判断导航元素距离顶部的偏移量与屏幕卷去高度的关系,动态添加或移除固定定位类名,从而完成导航栏的吸附固定功能。

文章目录

JavaScript实现导航栏吸顶效果详解

本文分享了一段使用JavaScript实现导航栏吸顶特效的完整代码示例,供读者参考学习。

核心知识点

核心知识点

1. scroll家族和offset家族的结合运用 2. 当nav的offsetTop大于屏幕卷去高度的时候,进行吸顶 3. 添加一个固定类,如果满足条件,为nav加类名

运行效果演示

运行效果演示

JavaScript实现导航栏吸顶效果详解

在页面滚动过程中,导航栏会在到达指定位置后自动吸附在窗口顶部。

JavaScript实现导航栏吸顶效果详解

代码实现部分

代码实现部分


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
 <style>
 *{margin: 0;padding: 0;list-style: none;border:none}
 img{vertical-align: top;width: 100%;}
 section{width: 70%;margin: 0 auto;}
 .nav{position: fixed;left: 0;top: 0;width: 100%}
 </style>
</head>
<body>
 <header id="head">
 <img src="images/top.png" alt="">
 </header>
 <nav id="nav">
 <img src="images/nav.png" alt="">
 </nav>
 <section>
 <img src="images/body01.png" alt="">
 <img src="images/body02.png" alt="">
 </section>
 <script src="../../MyTools/MyTools.js"></script>
 <script>
 window.addEventListener('load',function (ev) {
  // 1. 求出头部高度
  var navTopHeight = myTool.$('nav').offsetTop;
  // 2. 监听页面滚动
  window.addEventListener('scroll',function (ev1) {
  var scrollTopHeight = myTool.scroll().top;
  // 2.1 判断
  if(scrollTopHeight >= navTopHeight){
   myTool.addClassName(myTool.$('nav'),'nav')
  }else{
   myTool.removeClassName(myTool.$('nav'),'nav');
  }
  })
 })
 </script>
</body>
</html>

以上内容为本文的全部分享,希望能为读者的学习提供一定帮助,同时也欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章