码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • naiveui的table实现可滚动的恒居中空数据处理


    实现方式

    ~~
    先放一个实现效果截图:
    请添加图片描述
    naive-ui table 实现空数据页面的滚动、暂无数据恒居中效果

    问题详情: naive-ui的原逻辑时空数据页面只有居中的暂无数据字样,不支持横向滚动
    解决方案: 既然自带的table不支持滚动,那就自己写空数据页面往里面插

    1. 首先将自己手写的空数据页面替换自带的页面(组件支持空数据插槽):
      在这里插入图片描述

    2. 其次由于表头有快20列,并且我们使用的时固定表头,拖动下方的滚动条无法同步表头的滚动。所以在空数据div的滚动事件中我们要做好处理
      获取表头的el之后将滚动事件target解析出来把scrollleft的值赋值上
      在这里插入图片描述

    3. 这样拖动空数据的滚动条表头也会同步滚动了,但是还差最后一步。需要将暂无数据文案或图标进行恒居中。所以我使用的是绝对定位来实现的
      在这里插入图片描述
      根据scrollbar进行left 移动50% 并减去 自身的50% 实现居中, 由于是绝对定位 所以无论滚动条如何滚动都可以实现暂无数据的居中效果了

    实现代码

    纯代码区域

          <n-data-table
            remote
            :render-cell="renderCell"
            :scroll-x="getTableWidth"
            :columns="columns"
            :data="data"
            :pagination="pagination"
            :max-height="getTableMaxHeight"
            :loading="loadingRef"
            class="log-table-el"
            @update:page="handlePageChange"
          >
            <template #empty>
              <n-scrollbar x-scrollable @scroll="emptyScroll">
                <div :style="getEmptyTableTextPosition">
                  <div :style="setTextPosition.value">暂无数据</div>
                </div>
              </n-scrollbar>
            </template>
          </n-data-table>
          
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    // 暂无数据文字样式,为了达到文字永远居中使用与scrollbar的定位
    const emptyTextStyle = {
      lineHeight: '100px',
      height: '100px',
      width: '100px',
      position: 'absolute',
      left: '50%',
      transform: 'translate(-50%, 0)',
    };
    
    const tableHeaderEl: any = reactive({
      value: {},
    });
    
    const setTextPosition: any = reactive({
      value: {
        ...emptyTextStyle,
      },
    });
    
    onMounted(() => {
      tableHeaderEl.value = document.getElementsByClassName('n-data-table-base-table-header')[0];
    });
    
    // naiveui不支持暂无数据宽表格滚动,所以监听空数据div滚动条事件
    // 将事件的滚动条长度赋值给header则达到同步滚动的效果
    const emptyScroll = (event: any) => {
      const { target } = event;
      tableHeaderEl.value.scrollLeft = target.scrollLeft;
      setTextPosition.value = {
        ...emptyTextStyle,
      };
    };
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中的所有值为x的数据元素
    912. 排序数组(堆排序)
    古记事法:Windows 下 16 位汇编环境搭建指南(DOSBox-X 篇)
    Day2--使用ESP32双核、U8G2 OLED任务、任务以绝对频率运行、任务内存优化
    web前端期末大作业 html+css家乡旅游主题网页设计 湖北武汉家乡介绍网页设计实例
    【Multisim仿真】LM339过零电路仿真
    高性能API云原生网关 APISIX安装与配置指南
    JAVA线程池详解(ThreadPoolExecutor)
    【计算机视觉 | 语义分割】语义分割常用数据集及其介绍(二)
    大数据挖掘企业服务平台-道路运输安全大数据分析解决方案
  • 原文地址:https://blog.csdn.net/AzeShinja/article/details/126699148
  • 最新文章
  • 《给阿嬷的情书》中的“嬷”,与AI概念中的Token、Prompt、上下文窗口
    [Full Clock 技术复盘] 一、浏览器前端如何实现百毫秒级时间校准?时间 API 推荐、模拟 NTP 算法原理及局限
    一文讲透企业级 Harness Coding 架构落地实战!
    Claude Code 有了 Dynamic Workflows,那其他大模型怎么办?有开源版的替代-OpenWorkflows
    【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (5)--- 异步处理
    深度学习进阶(二十六)现代 LLM 的核心架构设计其一:RMSNorm
    "TokenFormer: Unify the Multi-Field and Sequential Recommendation Worlds" 论文笔记
    论文复现【DualMap: Online Open-Vocabulary Semantic Mapping for Natural Language Navigation in Dynamic Changing Scenes】
    张高兴的 Hailo-10 开发指南:(一)实现离线语音识别
    用 SymPy 解决 Manim 曲线绘制速度不均的问题
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号