目录

1 前言

2 具体步骤 

2.1 安装VueUse

2.2 吸顶导航组件中导入useScroll

2.3 在style中定义吸顶导航的两种状态

2.4 template中设置吸顶导航出现的时机


1 前言

本处使用VueUse更便捷的实现吸顶导航,具体内容及更多操作请看官网文档,如下:

useScroll | VueUse

2 具体步骤 

2.1 安装VueUse

在项目路径下的命令提示符窗口,输入如下指令:

npm i @vueuse/core

2.2 吸顶导航组件中导入useScroll

通过如下代码即可导入useScroll并获取纵坐标的值:

<script setup>
import { useScroll } from '@vueuse/core'    //导入useScroll
const {y} = useScroll(window)    //获取纵坐标的值
//其它代码
</script>

<template>
<!-- 其它代码 -->
</template>

<style scoped lang='scss'>
//其它代码
</style>

2.3 在style中定义吸顶导航的两种状态

<script setup>
import { useScroll } from '@vueuse/core'    //导入useScroll
const {y} = useScroll(window)    //获取纵坐标的值
//其它代码
</script>

<template>
    <div class="app-header-sticky">
        <!-- 其它代码 -->
    </div>
</template>

<style scoped lang='scss'>
.app-header-sticky {
  //其它代码

  // 吸顶导航状态
  // 状态一:往上平移自身高度 + 完全透明
  transform: translateY(-100%);
  opacity: 0;
  // 状态二:移除平移 + 完全不透明
  //&.show表示在父元素上添加show类时,以下样式将被应用
  &.show {
    transition: all 0.3s linear;    //元素会以0.3秒的时间以线性的速度过渡到不透明度为1的状态,
    transform: none;
    opacity: 1;
  }
}
</style>

2.4 template中设置吸顶导航出现的时机

这里就是当我们页面下划78的时候,原来的顶栏就看不到了,这时候我们的吸顶导航就该出现了。

<script setup>
import { useScroll } from '@vueuse/core'    //导入useScroll
const {y} = useScroll(window)    //获取纵坐标的值
//其它代码
</script>

<template>
    <!-- 吸顶导航部分 -->
    <div class="app-header-sticky" :class="{show: y > 78}">
        <!-- 其它代码 -->
    </div>
</template>

<style scoped lang='scss'>
.app-header-sticky {
  //其它代码

  // 吸顶导航状态
  // 状态一:往上平移自身高度 + 完全透明
  transform: translateY(-100%);
  opacity: 0;
  // 状态二:移除平移 + 完全不透明
  //&.show表示在父元素上添加show类时,以下样式将被应用
  &.show {
    transition: all 0.3s linear;    //元素会以0.3秒的时间以线性的速度过渡到不透明度为1的状态,
    transform: none;
    opacity: 1;
  }
}
</style>
GitHub 加速计划 / vu / vue
80
16
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 6 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐