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>
目录
相关文章
|
人工智能 安全 Linux
云+AI时代下,Alibaba Cloud Linux 进一步演进思考
用好开源、做深开源、自研创新,打造全方位安全可信的服务器操作系统。
|
安全 NoSQL Shell
pocsuite3 工具使用
pocsuite3 工具使用
300 4
|
调度 异构计算
NVIDIA Triton系列10-模型并发执行
NVIDIA Triton服务器支持模型并发执行,通过在单个或多个GPU上同时运行多个模型实例,提高计算资源利用率和性能。配置`instance_group`可调整每个模型的并发实例数,优化推理效率。此外,通过设置资源限制和优先级,确保在有限的计算资源下实现高效的任务调度。
566 0
NVIDIA Triton系列10-模型并发执行
|
存储 供应链 安全
区块链技术在现代物流行业的革新应用
本文深入探讨了区块链技术如何在现代物流行业中扮演着革命性的角色,通过提供去中心化、不可篡改的记录系统。文章首先概述了区块链技术的基本原理及其在物流行业中的应用潜力,随后详细分析了该技术如何提高物流透明度、减少欺诈行为、优化库存管理以及降低运营成本。最后,讨论了区块链技术面临的挑战和未来发展前景,为物流行业专业人士提供了深刻的洞见与实践指导。
366 0
|
存储 编解码 算法
图像的压缩算法--尺寸压缩、格式压缩和品质压缩
图像的压缩算法--尺寸压缩、格式压缩和品质压缩
594 0
|
算法 数据处理
Volcano - An Extensible and Parallel Query Evaluation System 论文解读
前面写了一些关于优化器的文章,现在开个小差,写一些执行器的paper介绍,从这篇开始。 这篇是Graefe的Volcano Project的执行器框架,其概念已被广泛接受和使用,也就是我们最为熟悉的Volcano iterator的执行框架,关于volcano/cascades的优化器介绍
869 0
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
815 0
|
供应链 区块链 数据安全/隐私保护
区块链技术在供应链管理中的应用
【2月更文挑战第30天】 随着数字化转型的深入发展,区块链技术凭借其不可篡改性、透明度和去中心化等特性,在供应链管理中展现出巨大潜力。本文旨在探讨区块链技术如何革新现有供应链模式,提升效率和安全性,并分析面临的挑战与未来的发展趋势。通过对区块链在供应链金融、追溯系统以及智能合约方面的应用案例进行分析,揭示其在解决信息不对称、降低交易成本及增强多方信任方面的独特价值。同时,考虑到技术的成熟度、行业接受度和法律监管等因素,文章还提出了对当前区块链技术应用的局限性进行评估的观点。
|
JSON 前端开发 API
一个例子让你学会使用Paging3
Jetpack Paging 为Android提供了列表分页加载的解决方案, Paging3 基于Kotlin协程进行了重写,并兼容Flow、RxJava、LiveData 等
641 0
|
Java C语言 Python
多线程与多进程(三)
多线程与多进程
277 0
多线程与多进程(三)