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工具方法弹出蒙版
May 08 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
jQuery stop()用法实例详解
Jul 28 Javascript
js实现弹窗暗层效果
Jan 16 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
Vue响应式原理详解
Apr 18 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 Javascript
vue2.0 实现导航守卫(路由守卫)
May 21 Javascript
Websocket 向指定用户发消息的方法
Jan 09 Javascript
JavaScript对象属性操作实例解析
Feb 04 Javascript
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
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/03 冲泡冲煮
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Python实现购物车功能的方法分析
2017/11/10 Python
python样条插值的实现代码
2018/12/17 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
综合办公室主任岗位职责
2014/04/13 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
介绍信格式
2015/01/30 职场文书