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 相关文章推荐
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
Jan 13 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
Mar 05 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
Javascript动态创建div的方法
Feb 09 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
JavaScript实现公历转农历功能示例
Feb 13 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 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
JAVA/JSP学习系列之七
2006/10/09 PHP
第1次亲密接触PHP5(2)
2006/10/09 PHP
如何使用PHP获取网络上文件
2006/10/09 PHP
php上传、管理照片示例
2006/10/09 PHP
php 缓存函数代码
2008/08/27 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
Python错误的处理方法
2020/06/23 Python
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
行政办公员自我评价分享
2013/12/14 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
神农溪导游词
2015/02/11 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
因个人工作失误检讨书
2019/06/21 职场文书