vue实现导航标题栏随页面滚动渐隐渐显效果


Posted in Javascript onMarch 12, 2020

项目开发中导航栏随页面滚动渐隐渐显这一功能还是较为常用的,下面作一个用vue实现此功能的代码分享。

1. 为导航栏元素style属性用v-bind绑定data数据"opacityStyle"。

<div class="header" :style="opacityStyle">
 景点详情 //内容我就简约了,实际开发以需求为准
</div>

2. data中定义opacityStyle,数据内容是opacity透明度属性,设置为0。

data() {
 return {
 opacityStyle:{ opacity:0 }
 }
}

3. 监听scroll事件并执行相应方法,一般我习惯在activated生命周期时开始监听(activated是keepAlive属性下产生的一个生命周期,在进入页面时)。

activated(){
 window.addEventListener('scroll',this.handleScroll)
}

4. 设计handleScroll()方法。通过获取scroll滚动偏移值,指定数值对opacity属性进行计算,让透明度联动变化。

methods:{
 handleScroll(){
 const top = document.documentElement.scrollTop //获取scroll偏移值
 if(top > 45 && top <= 150){ //实际按需求取范围
  const opacity = top / 150 //对opacity作计算,透明度从起始到1随偏移值而改变
  this.opacityStyle = {opacity} //实时返回给opacityStyle
 }
 }
}

5. 对scroll监听进行解绑。刚刚在activated()中执行监听,同样的我们在deactivated()中移除监听。这一步很重要,很多人都会忽略,如果不解除将可能影响到其他页面的scroll行为,导致项目产生bug。

deactivated(){
 window.removeEventListener('scroll',this.handleScroll)
}

以上是vue实现页面滚动显隐导航栏功能的代码和逻辑,有疑惑例如keepAlive用法等不明白的地方可查看文档另外学习~

总结

到此这篇关于vue实现导航标题栏随页面滚动渐隐渐显效果的文章就介绍到这了,更多相关vue 导航标题栏滚动渐隐渐显内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Dojo 学习笔记入门篇 First Dojo Example
Nov 15 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
为什么JavaScript没有块级作用域
May 22 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
Javascript typeof与instanceof的区别
Oct 18 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
Nov 24 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
Apr 13 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
详解阿里Node.js技术文档之process模块学习指南
Jan 04 Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 #Javascript
JS实现碰撞检测效果
Mar 12 #Javascript
使用JS实现动态时钟
Mar 12 #Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 #Javascript
js实现动态时钟
Mar 12 #Javascript
package.json各个属性说明详解
Mar 11 #Javascript
package.json中homepage属性的作用详解
Mar 11 #Javascript
You might like
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
php 实现进制相互转换
2016/04/07 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
vue实现数据控制视图的原理解析
2020/01/07 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
python数据结构之链表的实例讲解
2017/07/25 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
合作协议书格式
2014/08/19 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
停课通知书
2015/04/24 职场文书
python实现过滤敏感词
2021/05/08 Python
vue组件vue-esign实现电子签名
2022/04/21 Vue.js