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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
Jan 24 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
Dec 29 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
Feb 18 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
ES6的异步终极解决方案分享
Jul 11 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
php curl的深入解析
2013/06/02 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
浅谈vuepress 踩坑记
2018/04/18 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python回调函数用法实例详解
2015/07/02 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
全球性的在线商店:Vogca
2019/05/10 全球购物
Python Numpy之linspace用法说明
2021/04/17 Python
在Python中如何使用yield
2021/06/07 Python
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题