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 相关文章推荐
javascript引用对象的方法代码
Aug 13 Javascript
javascript下过滤数组重复值的代码
Sep 10 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
移动手机APP手指滑动切换图片特效附源码下载
Nov 30 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
jQuery实现的兼容性浮动层示例
Aug 02 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
JavaScript随机生成颜色的方法
Oct 15 Javascript
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
详解jQuery如何实现模糊搜索
May 10 jQuery
node基于async/await对mysql进行封装
Jun 20 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
PHP编程与应用
2006/10/09 PHP
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
PHP新手上路(五)
2006/10/09 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
Python三元运算实现方法
2015/01/12 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
django中的setting最佳配置小结
2017/11/21 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
学校七一活动方案
2014/01/19 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
先进员工获奖感言
2014/08/14 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
用Python实现屏幕截图详解
2022/01/22 Python
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python