elementUI树展示吸顶效果

【Vue项目实战7】【ElementUI样式优化】el-tree==>添加分级图标==>添加引导线样式==>【node-click】点击节点展示全部父节点信息==>使用$store封装全局组件使用 【Vue项目实战7】【ElementUI样式优化】el-tree==>添加分级图标==>添加引导线样式==>【node-click】点击节点展示全部父节点信息==>使用$store封装全局组件使用 阅读详情

elementUI增加部门本部节点,且滑动过程中本部需要吸顶,具体实现效果图如下:

 

实现代码分享:

html部分:

<div class="researchWork first">
  <!-- 左边树,固定定位   -->
  <div class="left-tree-box">
    <el-scrollbar ref="listbox" class="list-box" style="height:100%;">
     <!--   本部节点点击不收缩展开属性  :expand-on-click-node="false"-->
      <el-tree id="el-tree"  :data="treeList" :highlight-current="true" class="tree" :indent="14" :props="{children: 'children',label: 'name'}" :default-expand-all="true"></el-tree>
    </el-scrollbar>
  </div>
</div>

js部分:

initTree () {
    this.loading = true
  //queryBusinessLineTree() 封装的接口方法名
    queryBusinessLineTree().then(res => {
       // this.treeList = res;
       this.treeList = this.data // 假数据模拟
        setTimeout(()=>{
            // 获取第一级菜单元素
            var tempArr = document.getElementsByClassName('el-tree')[0].children
            console.log(tempArr,'tempArr')
            var tempArr2 = []
            // 过滤掉不相关元素
            for(let element of tempArr){
                if (element.className === 'el-tree-node is-expanded is-focusable') {
                    console.log(element.classList,'rr')
                    element.classList.add('group')
                    console.log(element.classList,'rr')
                    element.children[0].classList.add('group_title')
                    tempArr2.push(element)
                }
            }
            // 滚动监听
            this.$refs.listbox.wrap.addEventListener('scroll', () => {
                for(let element of tempArr2){
                    // 获取比对点数据
                    console.log(element,'element1111111')
                    var boxTop = document.getElementsByClassName('list-box')[0].getBoundingClientRect().top
                    var ulTop = element.getBoundingClientRect().top
                    var ulBottomMinus = element.getBoundingClientRect().top + element.getBoundingClientRect().height - 26
                    var ulBottom = element.getBoundingClientRect().top + element.getBoundingClientRect().height
                    console.log(boxTop,'boxTop',ulTop,'ulTop',ulBottomMinus,'ulBottomMinus',ulBottom,'ulBottom')
                    // 移除浮动类
                    element.classList.remove('top-end')
                    element.classList.remove('top')
                    // 吸顶
                    if (ulTop <= boxTop && boxTop <= ulBottom) {

                        element.classList.add('top')
                    }
                    // 交接
                    if (ulBottomMinus <= boxTop && boxTop <= ulBottom) {
                        element.classList.add('top-end')
                    }
                    console.log(element.classList,'element.classList')
                }
            })

        },500)
    }).catch(() => {
    });
},

样式部分:

.researchWork {
  margin: 15px;
  box-sizing: border-box;
  background: #fff;
  height: calc(100% - 30px);
  position: relative;
  display: flex;

  .left-tree-box {
    margin: 20px;
    padding: 10px;
    width: 20%;
    border: 1px solid #ccc;
    height: calc(100% - 70px);
    overflow: auto;
    display: inline-flex;
    border-radius: 5px;
  }
}
.first{
    .el-scrollbar__wrap{ overflow-x:hidden; overflow-y:auto;}
    .list-box{ height:99%; position:relative; }
    .el-tree{ position:static}
    .el-tree > .el-tree-node > .el-tree-node__content{background:#edf1f8;color:#a4a4b3}
    .el-tree > .el-tree-node > .el-tree-node__content > .el-tree-node__expand-icon{ visibility: hidden; font-size:0; padding:5px; }
    .el-tree > .el-tree-node > .el-tree-node__children{ margin-left:-12px;}
    .el-tree-node__content{color:#aaa}
    .el-tree-node__children .el-tree-node__content{color:#606266}
    .el-tree-node:focus > .el-tree-node__content{/*background:#eee;*/}
    .el-tree > .is-current > .el-tree-node__content{/*background:#edf1f8 !important;*/}
    .el-tree .top{ padding-top:26px}
    .el-tree .top .group_title{ position:absolute; top:0; left:0; width:100%; z-index: 1;}
    .el-tree .top-end{ position: relative;}
    .el-tree .top-end .group_title{ position:absolute; top:auto; bottom:0; left:0; width:100%; z-index: 1;}
    .el-scrollbar{overflow:visible !important;}
  }
.el-scrollbar__thumb{
  transform: translateY(0%) !important;
  height: 0 !important;
}
  .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
    background-color: #f0f7ff !important;
  }

数据定义部分:

data: [{
    name: '研究院',
    children: [{
        name: '信息化应用',
        children: [{
            name: '集团合同数据监管项目'
        },
            {
                name: '移动办公'
            }]
    },
        {
            name: '发票平台部研发产品线',
            children: [{
                name: 'ERP系统完善'
            },
                {
                    name: '三级'
                }]
        }]
}, {
  name: '研发部111111111111',
  children: [{
    name: '信息化应用qq',
    children: [{
      name: 'aaaaaaaaa'
    },
      {
        name: '移动办公'
      }]
  },
    {
      name: 'cccccccccccc',
      children: [{
        name: 'ERP系统完善'
      },
        {
          name: '三级'
        }]
    }]
},{
    name: '质量保障本部',
    children: [{
        name: '质量保障生态产品支撑部',
        children: [{
            name: '三级'
        },
            {
                name: '三级'
            }]
    }, {
        name: '质量综合处',
        children: [{
            name: '三级'
        },
            {
                name: '三级'
            }]
    }]
},{
  name: '质量保障本部111111',
  children: [{
    name: '质量保障111111111',
    children: [{
      name: '三级1'
    },
      {
        name: '三级1'
      }]
  }, {
    name: '质量综合处1',
    children: [{
      name: '三级1'
    },
      {
        name: '三级1'
      }]
  }]
}, {
    name: '信息中心',
    children: [{
        name: '人工智能与大数据产品线',
        children: [{
            name: '三级'
        },
            {
                name: '三级'
            }]
    }, {
        name: '数据资源应用及开发',
        children: [{
            name: '三级'
        },
            {
                name: '三级'
            },
            {
                name: '三级'
            },
            {
                name: '三级'
            },
            {
                name: '三级'
            },
            {
                name: '三级'
            }]
    }]
}],
// 树结构假数据
treeList: [],

elementUI Table组件实现表头吸顶效果 当 table 内容过多的时候,页面上滑滚动,表头的信息也会随着被遮挡,无法将表头信息和表格内容对应起来,需要进行表头吸顶。注册指令 directives/sticky-header.js。❗️❗️❗️父元素不要有 overflow: hidden;环境:vue2.6+、element UI。main.js 引入。 阅读详情

相关推荐

uniapp吸顶和自定义导航

<template> <view> <u-navbar :is-back="false" :background="background"> <view class="slot-wrap"> <view class="slot-content"> <u-icon name="search" color="#fff" size="35"></u-icon> .

qq_59717525的博客 1601

elementUI table 表头吸顶效果

elementUI table 表头吸顶效果

m0_66743830的博客 6459

ElementUI Table组件实现表头吸顶的进阶优化与多场景适配

本文深入解析了ElementUI Table组件实现表头吸顶的常见问题与进阶优化方案。针对CSS粘性定位在复杂布局中的失效难题,提供了基于Vue自定义指令的健壮解决方案,并详细阐述了如何适配弹窗、动态内容及多级滚动等场景,确保与固定列、排序筛选等功能完美兼容。

weixin_29001419的博客 212

vue+element 学习之路(十二)吸顶效果和动态css

参考了几位前辈们的做法,学习过程中发现吸顶效果其实很简单,关键取决于css中的 position:fixed属性,我们的目标就是动态给元素添加一个新属性(替换或增加class),使其能固定在页面上。下面就来分享一下我的做法。 首先在mounted钩子中设置滚轮监听事件,顺便复习一下mounted和created的区别: created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲...

weixin_39327044的博客 6944

在element-plus的table组件中,如何实现表头吸顶/滚动条吸底?

一个轻量级的 Vue 3 指令,用于实现表格表头吸顶功能,类似于 devecoui 库的效果。

weixin_44168010的博客 333

Fluent动网格+滑移网格+重叠网格对比介绍(以震荡水翼flapping foil为例)

初学fluent笔记,本文主要包含: Flapping foil在fluent内的几种实现方式 在哪设置动网格、滑移、重叠网格 flapping的UDF 示例 写在前面:Fluent在预览网格运动/提交计算之前,注意保存一个cas版本。 -------------------------Flapping foil 网格几种组合实现方式:---------------------- 直接重叠网格,overset, 需要建立两个几何part,part要重合。水翼局部区域(component),背景网格(ba

深海民工CFDer 2万+

前端-关于element-ui表头吸附的问题

el-table 添加height属性,即可以实现头部固定,但是这个属性不太适合我们公司的业务,因为我们的后台界面基本都是上部分已经占了部分面积,到了小屏幕电脑,表格的视图区会很少,所以这个方案我是不考虑的了😮‍💨。我当时听到这个需求都要炸裂了,因为我们表格用的是Element Ui,框架不支持啊😭!就是来一个掩盖手法,当滑动到一定位置时,显示另一个表头,造成像吸顶的感觉,听起来是不是已经有点拨云见日了😁。数据过多滑动表格的时候,看不到表头不知道对应的数据是什么,用户体验操作不友好,要改成表头固定住。

SuperJane_123的博客 1584

模型量化必知:Per-Tensor和Per-Channel到底怎么选?

本文深入解析了模型量化中Per-Tensor与Per-Channel两种核心策略的抉择。Per-Tensor量化实现简单、硬件兼容性极佳,适合激活值或分布均匀的权重;而Per-Channel量化精度更高,能更好地处理权重分布不均的卷积层,是现代CNN权重量化的主流。文章提供了从硬件平台、数值分布到精度需求的实战决策框架,并推荐了“权重Per-Channel,激活Per-Tensor”的混合量化最佳实践。

assembly8low的博客 983

Vue监听页面区域scroll滚动条方法,实现区域内某元素吸顶效果

Vue监听区域滚动条事件,实现简易元素吸顶效果

XINGZI前端程序猿的博客 5320

ICG cell如何通过Latch结构消除与门clock gating中的glitch?

本文深入解析了ICG Cell如何利用Latch结构解决传统与门时钟门控中的毛刺问题。通过将电平敏感锁存器与门控与门结合,ICG Cell将使能信号的变化严格限制在时钟低电平的安全窗口内采样和锁存,从而在时钟有效沿期间提供稳定的控制信号,从根本上消除了因信号延迟不同步而产生的glitch,确保了门控时钟的纯净与电路功能的可靠性。

weixin_29234423的博客 469

【STM32】STM32F103C8T6多串口通信实战:3个USART并行收发与中断处理优化

本文详细介绍了STM32F103C8T6多串口通信的实战技巧,包括3个USART模块的并行配置、中断优先级优化及数据收发冲突规避策略。通过硬件初始化步骤、中断优先级设置和双缓冲区实现等方案,有效解决了多串口通信中的数据错乱问题,提升系统稳定性与效率。

weixin_42526417的博客 170

vue实现头部吸顶描点

vue实现头部吸顶描点 效果:页面滚到具体位置时,顶部吸附(粘性定位),点击描点跳转到对应位置,滚到到对应位置描点自动切换。 html:使用elment ui,name对应每个位置的ref名称, <el-tabs @tab-click="jump" v-model="tabActive"> <el-tab-pane label="基础信息" name="base" ></el-tab-pane>

weixin_45658885的博客 399

从零搭建ROS1导航小车(一):松灵SCOUT Mini底盘通讯配置与ROS包编译避坑指南

本文详细介绍了从零开始搭建ROS1导航小车的初始步骤,重点讲解松灵SCOUT Mini底盘的通讯配置与ROS包编译避坑指南。内容包括硬件连接、CAN通讯配置、ROS工作空间构建及编译优化等实用技巧,帮助开发者快速实现自主导航小车的通讯功能。

weixin_27014595的博客 188

vue element 表头吸顶 并且可以随着大盒子左右滚动

当前需求是 1.整个页面可以垂直滚动 2.整个红盒子可以横向滚动(横向滚动时上面的盒子固定不动) 3.上面的盒子高度不固定 4. 垂直滚动时table的表头到达顶部时吸顶。 解决方案: 需求1 不提。 需求2 红盒子横向滚动 不提。上面的盒子固定不动 需要使用sticky粘性定位。 需求3 高度不固定会对需求2以及需求4有影响。 需求4 因为我的table头不仅要吸顶 还要可以横向滚动 所以动态给表头添加position :fixed 明显就不合理了。需要给它添加position:ab..

qq_36940740的博客 3895

论文理解【LLM-OR】——【OptiMUS】Scalable Optimization Modeling with (MI)LP Solvers and Large Language Models

OptiMUS 把“自然语言→优化建模与求解”从单次生成改造成“结构化问题 + 多智能体协作 + 连接图检索”的模块化流程,并在更长更难的数据集上验证了这种结构化方法相对端到端 prompting 的优

佚失的诗篇 823

RK3566/RK3568 Android 11添加系统服务

【代码】RK3566/RK3568 Android 11添加系统服务。

qq_23921815的博客 641

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定了。 但是如果表格上面还有其它区域,这样动态计算出表格的高度时还要减去其它区域的高度,因此计算出的表格的高度就会非常小,看数据特别不方便,此时就不能给表格设置一个固定高度了,但是这样一页数据很多时,滚动页面到底部,表头就被滚动隐藏了,为了用户体验好一点......

分享前端工程化、AI 应用、Agent 开发与大模型实践! 1295

ProgLoss+STAL 技术详解:YOLO26 小目标检测增强方案

本文提出了一种基于ProgLoss渐进式损失函数和STAL小目标感知标签分配的YOLO26增强方案。针对小目标检测中特征信息少、正负样本不平衡等难题,STAL通过尺度感知的标签分配策略动态调整候选样本数量和IoU阈值,为小目标分配更多正样本;ProgLoss则根据训练阶段动态调整分类和回归损失的权重,早期侧重定位能力,后期加强分类精度。实验表明,该组合方案显著提升了小目标检测性能,在COCO数据集上小目标AP达到38.2%,比基线提升6.5个百分点。该方法为遥感、监控等场景的小目标检测提供了有效解决方案。

一键难忘的博客 1285

ElementUI表格进阶技巧:如何让固定列和表头吸顶完美共存?

本文深入探讨了在ElementUI表格中同时实现固定列与表头吸顶功能的解决方案。针对两者共存时常见的层级冲突、视觉错乱问题,通过分析组件DOM结构与渲染逻辑,提供了一套高可用的CSS样式策略与可复用的Vue指令,确保复杂数据表格的流畅体验与专业视觉效果。

weixin_29009501的博客 238

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

css吸顶特效(elementui vue3官网)

效果如图:当浏览器滚轮在最上面的时候 没什么区别。当鼠标滚轮超出最上面高度时会有这种粒子感。首先要 明确 css 基础属性 position: sticky;

lllsj的博客 1414

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

vue element el-table表头吸顶实现详情(适用于表头无fixed属性使用)

el-table表头吸顶实现详情(适用于表头无fixed属性使用) 1、设置 ref=“tableSort” <el-table ref="tableSort" v-loading="listLoading" :data="list" border @selection-change="setSelectRows" @sort-change="sortChange" > 2、设置页面滚动

weixin_53082364的博客 3662

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

el-table表头下滑时吸顶

addEventListener第三个参数,布尔值或者详细对象,如果布尔值为true,表示在捕获阶段触发事件。

donghua201的博客 633

解决 element-ui 的 el-table 自动吸顶(支持fixed,keep-alive的使用)

el-table不设定高度,同时表头固定顶部,吸附顶部

weixin_41308436的博客 5878

vue el-tree 默认选中_顺滑 Vue 移动端吸顶导航组件Vue-StickyNav

今天给大家分享一个超不错的Vue手机端导航吸顶组件VueStickyNav。vue-sticky-nav 基于vue2.x实现的导航粘性吸顶效果。支持自定义参数配置,兼容所有主流的浏览器。VueStickyNav会在页面到达导航条位置的时候粘住导航,超过父容器高度后恢复。安装$ npm i vue-sticky-nav -S使用组件 Options参数navs :数组、必填项,填写每一项的内容s...

weixin_39785858的博客 271

ElementUI表格吸顶(sticky)

ElementUI表格吸顶(sticky)

weixin_49645803的博客 1504

解决 element-ui 的 el-table 自动吸顶(支持fixed)

看了很多案例,从简单的角度,position:sticky,似乎是比较理想的选择,可是当el-table设置了fixed后,这里的fixed会失效。最后还是采用了js监听滚动的思路实现。 获取表格距离顶部的距离; 设置表格距离顶部多少就吸顶---offsetTop1; 获取滚动条滚动的距离; 当滚动条滚动了 offsetTop1 后,表格就自动吸顶;

态度决定一切 9895
上一篇: 利用vuex解决keep-alive缓存后点击左侧菜单进行初始化,点击tab也缓存数据问题
下一篇: 手把手带你封装一个form表单
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值