Vue实现导航栏吸顶效果

简介: Vue实现导航栏吸顶效果
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Vue实现导航栏吸顶效果</title>
  </head>
  <body>
    <script src="static/js/vue.js"></script>

    <style>
      body {
        margin: 0;
      }

      /* 背景 */
      #app {
        height: 2000px;
        margin: 0 auto;
        background-color: #eeeeee;
      }

      /* 导航 */
      .nav {
        width: 100%;
        height: 30px;
        background-color: #666666;
      }

      /* 固定导航 */
      .fix-nav {
        position: fixed;
        top: 0;
        z-index: 999;
      }
    </style>

    <div id="app">
      <div id="nav" class="nav" :class="{'fix-nav': navBarFixed}"></div>
    </div>

    <script>
      const app = new Vue({
        el: "#app",

        data() {
          return {
            navBarFixed: false,
          };
        },

        mounted() {
          // 事件监听滚动条
          window.addEventListener("scroll", this.watchScroll);
        },

        destroyed() {
          // 移除事件监听
          window.removeEventListener("scroll", this.watchScroll);
        },

        methods: {
          watchScroll() {
            // 滚动的距离
            var scrollTop =
              window.pageYOffset ||
              document.documentElement.scrollTop ||
              document.body.scrollTop;

            // 容器的高度
            var offsetTop = document.querySelector("#nav").offsetHeight;

            console.log("scrollTop=>", scrollTop, "  offsetTop=>", offsetTop);

            //  滚动的距离如果大于了元素到顶部的距离时,实现吸顶效果
            if (scrollTop > offsetTop) {
              this.navBarFixed = true;
            } else {
              this.navBarFixed = false;
            }
          },
        },
      });
    </script>
  </body>
</html>

参考

Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)

            </div>
目录
相关文章
|
安全 前端开发 Java
基于springboot的微信公众号管理系统(支持多公众号接入)
基于springboot的微信公众号管理系统(支持多公众号接入)
548 2
|
JavaScript
Vue的vant notify组件报错Notify is not defined
Vue的vant notify组件报错Notify is not defined
238 0
|
2月前
|
人工智能 架构师 物联网
2小时打造专业医疗助手:基于CareGPT与Qwen3-8B的微调实战
基于CareGPT和Qwen3-8B模型,采用LoRA方法在专业医疗数据集上进行微调实践,该技术方案在保持模型通用能力的同时,显著提升了医疗问答的专业性和实用性,系统性地构建一个真正“懂症状、能判断”的智能医疗助手。从技术演进角度看,微调后的模型与医疗系统深度融合将释放更大价值。这种"领域微调+系统集成"的技术路径,为AI在医疗等专业场景的落地提供了经过验证的解决方案。
357 3
|
安全 小程序 网络安全
https证书是什么?
https证书=SSL证书=数字证书 数字证书是一个经权威的CA (Certificate Authority) 证书授权中心发行的可以在互联网通讯中标志通讯各 方身份信息的一个数字认证,人们可以在网上用它来 识别对方的身份。数字证书采用公钥体制,即利用一 对互相匹配的密钥进行加密、解密。每个用户自己设 定一把特定的仅为本人所知的私有密钥(私钥),用 它进行解密和签名;同时设定一把公共密钥(公钥) 并由本人公开,为一组用户所共享,用于加密和验证 签名。
4331 0
|
25天前
|
人工智能 测试技术
NeurlPS 2025!多伦多大学TIRE助力3D/4D 生成精准保留主体身份
TIRE提出“追踪-补全-重投影”三阶段方法,实现主体驱动的3D/4D生成。通过视频跟踪识别缺失区域,定制2D模型补全纹理,并重投影至3D空间,提升生成一致性与质量,推动动态场景生成新进展。
114 8
NeurlPS 2025!多伦多大学TIRE助力3D/4D 生成精准保留主体身份
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
1083 0
|
缓存 JavaScript Java
SpringBoot集成onlyoffice实现word文档编辑保存
SpringBoot集成onlyoffice实现word文档编辑保存
2531 0
教育技术工具盘点:五大免费软件助力教师信息化
随着科技的发展,学校在管理、教学等方面逐步引入信息技术,提升教师专业技能。本文推荐了几款实用的教育技术工具,如草料二维码、101教育PPT、格式工厂、小猿口算和万彩动画大师,以提高教学效率。草料二维码适用于教学资源电子化、信息收集等工作,101教育PPT则提供丰富的PPT资源,方便教师备课和互动教学。其他工具也各具特色,助力教学创新。
600 10
教育技术工具盘点:五大免费软件助力教师信息化
hutool获取excel中的图片
hutool获取excel中的图片
978 1