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 相关文章推荐
showModalDialog 和 showModelessDialog
Jan 22 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
js检测网络是否具体连接功能的代码
May 23 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 Javascript
JavaScript验证知识整理
Mar 24 Javascript
微信小程序 转发功能的实现
Aug 04 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
Dec 05 Javascript
js实现简单掷骰子效果
Oct 24 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 输出URL的快捷方式示例代码
2013/09/22 PHP
如何让CI框架支持service层
2014/10/29 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
Javascript delete 引用类型对象
2013/11/01 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
详解python3中的真值测试
2018/08/13 Python
python进行TCP端口扫描的实现
2018/12/21 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Django分组聚合查询实例分享
2020/04/29 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
类和结构的区别
2012/08/15 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
小小的船教学反思
2014/02/21 职场文书
环境建设实施方案
2014/03/14 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
大学生支教感言
2015/08/01 职场文书
个人向公司借款协议书
2016/03/19 职场文书