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 js cookie的存储,获取和删除
Dec 29 Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
加载 Javascript 最佳实践
Oct 30 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
使用百度地图实现地图网格的示例
Feb 06 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
Vue SSR 即时编译技术的实现
May 06 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
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
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
js将json格式内容转换成对象的方法
2013/11/01 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
pyqt5实现登录界面的模板
2020/05/30 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
python实现的自动发送消息功能详解
2019/08/15 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
Python列表操作方法详解
2020/02/09 Python
python小白学习包管理器pip安装
2020/06/09 Python
python绘制高斯曲线
2021/02/19 Python
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
区三好学生主要事迹
2014/01/30 职场文书
《老王》教学反思
2014/02/23 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
规范化管理年活动总结
2014/08/29 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
工程进度款催款函
2015/06/24 职场文书
写给同事的离职感言
2015/08/04 职场文书