Vue:Vue中的导航浮顶

作者: Mr_Treasure | 来源:发表于2017-04-21 17:24 被阅读239次

前言

这段时间忙着找工作写毕业设计,简书好久没更新了。毕业设就是用Vue重构了学院官网,大致功能都完成了,完全实现了前后端分离。MOCK服务器也是在webpack基础上搭建的,有空再写篇文章介绍一下,今天先分享Vue中的导航浮顶。

效果图

正常位置.png 导航浮顶.png

实现思路

正常布局中取得导航栏的距离顶部的位置nav.offsetTop,监听屏幕滚动,当滚动条的距离超过这个值时,将nav的position属性改为fixed。小于时变回原样。思路上很简单。

Vue中的实现

DOM部分

我将navigation封装为一个组件,用一个wrapper包裹住他,这样降低了耦合度。我只需要操作wrapper

mounted.png

在mounted钩子函数中获取导航栏距离顶部的距离,一定要在mounted以后获取,否则会导致数据不正确

计算属性.png

讲获取到的数据转换为一个计算属性,这样不用重复的访问DOM树,增强性能。(其实没多大性能损失)

fix方法.png

我在mounted里面为全局添加滚动事件,这里是它的具体方法。通过$nextTick中重新获取滚动距离,判断滚动条位置,根据结果修改nav的样式

最后

这只是毕业设计中的一小部分,整个毕业设计中,我发现编码不是太大问题,问题是架构的设计,不断扩充的路由表,单组件的复用问题。这些都属于架构层面,事前的思考不够细致。
另一方面是服务器。使用的就是webpack搭建的本地服务器,数据mock很方便,会在后面的文章中给大家介绍。记得关注哦。
就是这样:)

相关文章

  • Vue:Vue中的导航浮顶

    前言 这段时间忙着找工作写毕业设计,简书好久没更新了。毕业设就是用Vue重构了学院官网,大致功能都完成了,完全实现...

  • Vue应用

    Vue项目 Vue结构 Vue项目打包与发布 Vue语法二 Vue网络请求 Vue路由 动态路由 编程式路由导航

  • 11-element-ui+vue通过路由配置导航(上)

    配置静态导航 nav.vue item.vue

  • vue-router路由守卫

    vue-router导航钩子 vue-router导航钩子的主要作用是拦截导航,让路由完成跳转或者取消; 导航钩子...

  • Vue 如何引入其它Vue文件

    例如有个navgationTemplate.vue 我需要在index.vue中引入//引入导航栏组件 Na...

  • 判断浏览器,区分PC和移动

    判断浏览器 区分PC和移动 web端:app.vue app端:app.vue 网站导航 网站导航

  • vue-router路由拦截器

    Vue Router 是vue.js官方路由管理器 路由出口 声明式导航 编程式导航 全局前置守卫 全局后置钩子 ...

  • 导航守卫以及keep-alive

    一 什么是导航守卫? vue-router提供的导航守卫主要用来监听监听路由的进入和离开的.vue-router提...

  • Vue 入门指南

    Vue 入门指南 章节导航 英文:http://vuejs.org/guide/index.html 介绍 vue...

  • Vue面试锦集

    1.Vue有哪几种导航钩子vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消。1.全局的 b...

网友评论

本文标题:Vue:Vue中的导航浮顶

本文链接:https://www.haomeiwen.com/subject/ujodzttx.html