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实用技巧(一)
Aug 16 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
深入领悟JavaScript中的面向对象
Nov 18 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
Sep 18 Javascript
详解JavaScript中的构造器Constructor模式
Jan 14 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
Nov 18 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
JS随机排序数组实现方法分析
Oct 11 Javascript
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
layui实现把数据表格时间戳转换为时间格式的例子
Sep 12 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 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
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
微信小程序实现复选框效果
2018/12/28 Javascript
小程序转发探索示例
2019/02/19 Javascript
express.js中间件说明详解
2019/03/19 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
python实现定时播放mp3
2015/03/29 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Python的UTC时间转换讲解
2019/02/26 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
python实现粒子群算法
2020/10/15 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
自我评价如何写好?
2014/01/05 职场文书
高校教师岗位职责
2014/03/18 职场文书
升职感谢信
2015/01/22 职场文书
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技