当前位置: 首页 > news >正文

光明网站建设软文街

光明网站建设,软文街,网站制作项目,北京建设网站 公司头部分类导航-吸顶功能 电商网站的首页内容会比较多,页面比较长,为了能让用户在滚动浏览内容的过程中都能够快速的切换到其它分类。需要分类导航一直可见,所以需要一个吸顶导航的效果。 目标:完成头部组件吸顶效果的实现 交互要求 滚动距离大…

头部分类导航-吸顶功能

电商网站的首页内容会比较多,页面比较长,为了能让用户在滚动浏览内容的过程中都能够快速的切换到其它分类。需要分类导航一直可见,所以需要一个吸顶导航的效果。

目标:完成头部组件吸顶效果的实现

交互要求

  1. 滚动距离大于等于78个px的时候,组件会在顶部固定定位
  2. 滚动距离小于78个px的时候,组件消失隐藏

实现思路

  1. 准备一个吸顶组件,准备一个类名,控制显示隐藏
  2. 监听页面滚动,判断滚动距离,距离大于78px添加类名

核心代码:

(1)新建吸顶导航组件src/Layout/components/app-header-sticky.vue

<script lang="ts" setup name="AppHeaderSticky">
import AppHeaderNav from './app-header-nav.vue'
</script><template><div class="app-header-sticky"><div class="container"><RouterLink class="logo" to="/" /><AppHeaderNav /><div class="right"><RouterLink to="/">品牌</RouterLink><RouterLink to="/">专题</RouterLink></div></div></div>
</template><style scoped lang="less">
.app-header-sticky {width: 100%;height: 80px;position: fixed;left: 0;top: 0;z-index: 999;background-color: #fff;border-bottom: 1px solid #e4e4e4;.container {display: flex;align-items: center;}.logo {width: 200px;height: 80px;background: url(@/assets/images/logo.png) no-repeat right 2px;background-size: 160px auto;}.right {width: 220px;display: flex;text-align: center;padding-left: 40px;border-left: 2px solid @xtxColor;a {width: 38px;margin-right: 40px;font-size: 16px;line-height: 1;&:hover {color: @xtxColor;}}}
}
</style>

(2)Layout首页引入吸顶导航组件

<script lang="ts" setup>
import AppTopnav from './components/app-topnav.vue'
import AppHeader from './components/app-header.vue'
import AppFooter from './components/app-footer.vue'
+import AppHeaderSticky from './components/app-header-sticky.vue'
</script>
<template><AppTopnav></AppTopnav><AppHeader></AppHeader>
+  <AppHeaderSticky></AppHeaderSticky><div class="app-body"><!-- 路由出口 --><RouterView></RouterView></div><AppFooter></AppFooter>
</template><style lang="less" scoped>
.app-body {min-height: 600px;
}
</style>

(3)提供样式,控制sticky的显示和隐藏

.app-header-sticky {width: 100%;height: 80px;position: fixed;left: 0;top: 0;z-index: 999;background-color: #fff;border-bottom: 1px solid #e4e4e4;
+  transform: translateY(-100%);
+  &.show {
+    transition: all 0.3s linear;
+    transform: translateY(0%);
+  }

(4)给window注册scroll事件,获取滚动距离

<script lang="ts" setup>
import { onBeforeUnmount, onMounted, ref } from 'vue'
import AppHeaderNav from './app-header-nav.vue'
const y = ref(0)
const onScroll = () => {y.value = document.documentElement.scrollTop
}
onMounted(() => {window.addEventListener('scroll', onScroll)
})
onBeforeUnmount(() => {window.removeEventListener('scroll', onScroll)
})
</script>

(5)控制sticky的显示和隐藏

 <div class="app-header-sticky" :class="{show:y >= 78}">

(6)修复bug,为了吸顶头部的内容不遮住不吸顶的头部。
在这里插入图片描述

<div class="container" v-show="y >= 78">

也可以使用185px,正好原有的header全部消失时候展示吸顶的header

头部分类导航-吸顶重构

vueuse/core : 组合式API常用复用逻辑的集合

目标: 使用 vueuse/core 重构吸顶功能

核心步骤

(1)安装@vueuse/core 包,它封装了常见的一些交互逻辑

yarn add @vueuse/core

(2)在吸顶导航中使用

src/components/app-header-sticky.vue

<script lang="ts" setup>
import AppHeaderNav from './app-header-nav.vue'
// import { onBeforeUnmount, onMounted, ref } from 'vue'
import { useWindowScroll } from '@vueuse/core'
// const y = ref(0)
// const onScroll = () => {
//   y.value = document.documentElement.scrollTop
// }
// onMounted(() => {
//   window.addEventListener('scroll', onScroll)
// })
// onBeforeUnmount(() => {
//   window.removeEventListener('scroll', onScroll)
// })
// 控制是否显示吸顶组件
const { y } = useWindowScroll()
</script>
http://www.yidumall.com/news/40841.html

相关文章:

  • 公安网站备案系统百度关键词指数查询工具
  • 桌面软件开发跟网站开发那个网络营销案例100例
  • 上海广告网站建设百度指数手机版
  • 品牌网站建设毛尖信息流优化师招聘
  • 网站 项目方案关键词歌词表达的意思
  • 厦门建网站的公司网络营销公司有哪些
  • 沈阳市城乡建设局解释seo网站推广
  • 网站页面数量百度联盟怎么加入
  • 一个网站好不好百度排行榜风云榜小说
  • 关于网站制作报价百度seo
  • 舟山市建设工程质量监督站网站成都达洱狐网络科技有限公司
  • 用服务器做网站需要购买域名吗正规的培训机构有哪些
  • 建设网站小常识网页seo搜索引擎优化
  • 微软网站做u盘启动教程青岛爱城市网app官方网站
  • 贵阳做网站kuhugzsteam交易链接在哪里
  • 合肥市网站优化广告联盟接广告
  • 建购物网站需要多少钱今日国际新闻热点
  • 深圳百度网站优化百度站内搜索提升关键词排名
  • 网站建设方案书阿里云模板东莞seo技术培训
  • 溧阳网站建设价格seo模拟点击工具
  • 网站模板自建站北京seoqq群
  • 连云港网络公司排名seo优化教程下载
  • 建设第二个北京在哪里哈尔滨企业网站seo
  • 做网站的设计文档怎么做引擎网站推广法
  • 中型网站开发语言农产品营销策划方案
  • 点网站建设seo优化服务公司
  • 做网站精英新东方雅思培训机构官网
  • 网站开发用什么服务器重庆seo网站推广费用
  • 如何建设软件下载网站企业网络营销策划方案
  • ppt素材网站建设流程图北京建站工作室