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 相关文章推荐
简洁短小的 JavaScript IE 浏览器判定代码
Mar 21 Javascript
Javascript匿名函数的一种应用 代码封装
Jun 27 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
Jun 25 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
Dec 09 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
Vue之Watcher源码解析(1)
Jul 19 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
vue子传父关于.sync与$emit的实现
Nov 05 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
详解vue-router基本使用
2017/04/18 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python处理CSV与List的转换方法
2018/04/19 Python
详解Python3 基本数据类型
2019/04/19 Python
python处理document文档保留原样式
2019/09/23 Python
python函数定义和调用过程详解
2020/02/09 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
法人授权委托书
2014/09/16 职场文书
同学聚会通知书
2015/04/20 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
Redis批量生成数据的实现
2022/06/05 Redis