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 相关文章推荐
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
js字符串的各种格式的转换 ToString,Format
Aug 08 Javascript
基于JavaScript自定义构造函数的详解说明
Apr 24 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
Jan 18 Javascript
AngularJS中的拦截器实例详解
Apr 07 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
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下载文件函数与用法示例
2019/09/27 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
python 创建弹出式菜单的实现代码
2017/07/11 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
用Django写天气预报查询网站
2018/10/21 Python
Python中字符串List按照长度排序
2019/07/01 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
C语言笔试集
2012/07/24 面试题
会计主管岗位职责范文
2013/11/08 职场文书
市场安全管理制度
2014/01/26 职场文书
高中生期末评语大全
2014/01/28 职场文书
主题婚礼策划方案
2014/02/10 职场文书
辩论赛主持词
2014/03/18 职场文书
社团个人总结范文
2015/03/05 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
毕业酒会致辞
2015/07/29 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
纯html+css实现Element loading效果
2021/08/02 HTML / CSS