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查询DBpedia小应用实例学习
Mar 07 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
js实现网页收藏功能
Dec 17 Javascript
理解Javascript文件动态加载
Jan 29 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
Feb 26 Javascript
详解JavaScript常量定义
Jan 03 Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
Jan 22 jQuery
微信小程序仿美团城市选择
Jun 06 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
Sep 01 Javascript
微信小程序实现Swiper轮播图效果
Nov 22 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 strtok()函数的优点分析
2010/03/02 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
python opencv之分水岭算法示例
2018/02/24 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
公司市场部岗位职责
2013/12/02 职场文书
2016猴年春节问候语
2015/11/11 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL