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 相关文章推荐
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
Jul 17 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
Vue从TodoList中学父子组件通信
Feb 05 Javascript
VUE.js实现动态设置输入框disabled属性
Oct 28 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
Dec 19 Javascript
Element InputNumber计数器的使用方法
Jul 27 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 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 广告调用类代码(支持Flash调用)
2011/08/11 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
php解析url的三个示例
2014/01/20 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
基于jquery的表格排序
2010/09/11 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
巧用canvas
2017/01/21 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
Python argparse模块应用实例解析
2019/11/15 Python
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
优秀应届生推荐信
2013/11/09 职场文书
家长给孩子的评语
2014/01/30 职场文书
对孩子的寄语
2014/04/09 职场文书
捐书倡议书
2014/08/29 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
如何才能写好调研报告?
2019/07/03 职场文书