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 相关文章推荐
又一个图片自动缩小的JS代码
Mar 10 Javascript
js 实现打印网页中定义的部分内容的代码
Apr 01 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
Jan 11 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
Javascript编写俄罗斯方块思路及实例
Jul 07 Javascript
关于原生js中bind函数的简单实现
Aug 10 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 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 $_FILES函数详解
2011/03/09 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python多进程编程技术实例分析
2014/09/16 Python
剖析Python的Twisted框架的核心特性
2016/05/25 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
windows下python安装pip图文教程
2018/05/25 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
pytorch之添加BN的实现
2020/01/06 Python
Python中itertools的用法详解
2020/02/07 Python
Python列表操作方法详解
2020/02/09 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
文化建设工作方案
2014/05/12 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
宇宙与人观后感
2015/06/05 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
Redis唯一ID生成器的实现
2022/07/07 Redis