vue中多路由表头吸顶实现的几种布局方式


Posted in Javascript onApril 12, 2019

vue项目多路由表头吸顶实现的几种布局方式

因为项目较大,有五个界面,每个界面有四个子组件,每个子组件都有一个table表格,需求是每个界面的每个table滚动到顶端表头吸顶,所以尝试用vux做这种需求,

一、先聊js。

A.首先在vux可以这样设置。

1.在state文件中设置状态。

techo:{
 partsFixed:false,
 repairFixed:false,
 mateFixed:false,
 outRepairFixed:false
 }//吸顶状态

2.在action中commit状态。

export const setTecho=function ({commit},data) {
 commit(types.UPDATETECHO, {data})
}

3.mutations中更新状态。

[types.UPDATETECHO](state,{data}){
 const {name,type,other} =data;
 for (let i in state.techo) {
  if(i===name){
  state.techo[i]=other;
  state.techo[name]=type;
  }
 }
 }//更新吸顶状态

B.在界面中我们可以这样操作。

1、在methods中我们可以定义一个回调函数。

partScroll(){
 const evalPart = this.$refs.evalPart,//evalPart为表格对象
   evalTopTitle = document.querySelector('.fixedNav');//evalTopTitle为导航栏
 if(evalPart){
  let evalPartBottom = evalPart.getBoundingClientRect().bottom,
   evalPartTop = evalPart.getBoundingClientRect().top,
   evalTopTitleHeight = evalTopTitle.getBoundingClientRect().height;
  evalPartTop<=evalTopTitleHeight && evalPartBottom>=evalTopTitleHeight?
  this.$store.dispatch('setTecho',{name:"partsFixed",type:true,other:false})
  :this.$store.dispatch('setTecho',{name:"partsFixed",type:false,other:false});
 }
 },

  如果项目大,最好对函数进行封装放到全局混合。

scrollEvent(evalPart,evalTopTitle,name){
 if(evalPart){//注意一定要对表格对象进行判断,因为表格是动态添加的,可能值为空,会报错。
  let evalPartBottom = evalPart.getBoundingClientRect().bottom,
  evalPartTop = evalPart.getBoundingClientRect().top,
  evalTopTitleHeight = evalTopTitle.getBoundingClientRect().height;
  evalPartTop<=evalTopTitleHeight && evalPartBottom>=evalTopTitleHeight?
  this.$store.dispatch('setTecho',{name,type:true,other:false})
  :this.$store.dispatch('setTecho',{name,type:false,other:false});
 }
 },
partScroll(){
 const evalPart = this.$refs.evalPart,//evalPart为表格对象
  evalTopTitle = document.querySelector('.fixedNav');//evalTopTitle为导航栏
  this.scrollEvent(evalPart,evalTopTitle,'partsFixed')
}

2、在mouted里面进行滚动监听。

mounted(){
 window.addEventListener('scroll',this.partScroll);
}

3、最后记得在destroyed里面进行销毁。

destroyed () {
 window.removeEventListener('scroll', this.partScroll)
}

总结

以上所述是小编给大家介绍的vue中多路由表头吸顶实现的几种布局方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Js的MessageBox
Dec 03 Javascript
javascript+css 网页每次加载不同样式的实现方法
Dec 27 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
js获取html的span标签的值方法(超简单)
Jul 26 Javascript
运用js教你轻松制作html音乐播放器
Apr 17 Javascript
原生javascript实现的ajax异步封装功能示例
Nov 03 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
Apr 11 #Javascript
如何检查一个对象是否为空
Apr 11 #Javascript
vue项目创建并引入饿了么elementUI组件的步骤
Apr 11 #Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 #Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 #Javascript
详解用场景去理解函数柯里化(入门篇)
Apr 11 #Javascript
Vue开发Html5微信公众号的步骤
Apr 11 #Javascript
You might like
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
python和C语言混合编程实例
2014/06/04 Python
使用python开发vim插件及心得分享
2014/11/04 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python字典key不能是可以是啥类型
2020/08/04 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
如何解决python多种版本冲突问题
2020/10/13 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
会计学生自我鉴定
2014/02/06 职场文书
大学生先进事迹材料
2014/02/16 职场文书
医师定期考核实施方案
2014/05/07 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
2014年教学工作总结
2014/11/13 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python