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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
js window.open弹出新的网页窗口
Jan 16 Javascript
jquery 选取方法都有哪些
May 18 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
js实现文字截断功能
Sep 14 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
基于JSON数据格式详解
Aug 31 Javascript
ES6使用export和import实现模块化的方法
Sep 10 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 Javascript
Three.js实现雪糕地球的使用示例详解
Jul 07 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实现网站插件机制的方法
2009/11/10 PHP
PHP函数超时处理方法
2016/02/14 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Python按钮的响应事件详解
2019/03/04 Python
Python登录系统界面实现详解
2019/06/25 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
python实现最短路径的实例方法
2020/07/19 Python
python脚本第一行如何写
2020/08/30 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
计算机求职信
2013/12/01 职场文书
社区活动总结报告
2014/05/05 职场文书
李开复演讲稿
2014/05/24 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python