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 相关文章推荐
基于jquery的复制网页内容到WORD的实现代码
Feb 16 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
Jul 06 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
vue项目中公用footer组件底部位置的适配问题
May 10 Javascript
JS对象与json字符串相互转换实现方法示例
Jun 14 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
微信小程序实现简单评论功能
Nov 28 Javascript
layui type2 通过url给iframe子页面传值的例子
Sep 06 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
精读《Vue3.0 Function API》
May 20 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
Aug 19 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
php中最简单的字符串匹配算法
2014/12/16 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python的re模块使用方法详解
2019/07/26 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
意大利在线药房:Saninforma
2021/02/11 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
小学开学典礼主持词
2014/03/19 职场文书
元旦寄语大全
2014/04/10 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
PHP遍历数组的6种方式总结
2021/11/17 PHP