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 相关文章推荐
jquery选择器、属性设置用法经验总结
Sep 08 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
Jan 08 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
jQuery对指定元素中指定字符串进行替换的方法
Mar 17 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
javascript常见数字进制转换实例分析
Apr 21 Javascript
详谈jQuery中的一些正则匹配表达式
Mar 08 Javascript
Vue from-validate 表单验证的示例代码
Sep 26 Javascript
javascript+html5+css3自定义弹出窗口效果
Oct 26 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
vue展示dicom文件医疗系统的实现代码
Aug 27 Javascript
vue-cli中vue本地实现跨域调试接口
Jan 16 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 Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
PHP循环结构实例讲解
2014/02/10 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
python 实现Harris角点检测算法
2020/12/11 Python
介绍一下XMLHttpRequest对象
2012/02/12 面试题
房地产管理毕业生自荐信
2013/11/04 职场文书
英语分层教学实施方案
2014/06/15 职场文书
医学生求职信
2014/07/01 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
小学教师工作总结2015
2015/04/07 职场文书
Python Socket编程详解
2021/04/25 Python