2021-05-31-element中table表hover显示隐藏表单的实现

2023-11-02

需求: 实现鼠标悬停table中的某一列显示修改按钮,修改按钮跟随内容后间距8px,内容超过16字节显示…加上修改按钮,效果如下图

在这里插入图片描述

在这里插入图片描述
#思路:
1、 需要解决鼠标进入列的和离开列的事件控制修改按钮的显示和隐藏, 问题点=>怎样优雅地处理table表中的事件,不用直接操作dom去控制
2、 判断内容的字节数判断跟随的修改按钮的位置,问题点=>如果修改是放在内容中会占据行内元素的位置和长度,影响最终的位置,所以采取定位脱离文档流解决
html

<el-table
        :data="tableData"
        fixed
        v-loading="loading"
        @cell-mouse-enter="mouseEnterTable"   // element单元格hover进入触发,参数row, column, cell, event见官网
        @cell-mouse-leave="mouseLeaveTable"
        class="tableBox"
      >
        <el-table-column prop="shareName" :label="'备注名称'" width="179">
          <template slot-scope="scope">
            <div class="nameRow textover">
              <span :class="judgeLen(scope.row.shareName) < 16 ? 'rel': ''"
                >{{ scope.row.shareName}}
                <span
                  class="commedit"
                  v-if="scope.row.dis && judgeLen(scope.row.shareName) < 16"
                  @click="openObserverName(scope.row)"
                >
                  修改</span
                >
              </span>
              <span
                v-show="scope.row.dis && judgeLen(scope.row.shareName) >= 16"
                class="edit"
                @click="openObserverName(scope.row)"
                >修改</span
              >
            </div>
          </template>
        </el-table-column>
</el-table>

js

  // 对tableData数据进行处理每一条增加下面两个属性,行标识和控制显示隐藏的属性
     //item.rowIndex = index;
     //item.dis = false;   
 // 进入table,找到定位
    mouseEnterTable(row, column) {
      // 显示修改
      if (column.property === 'shareName') {
        this.tableData[row.rowIndex].dis = true;
      }
    },
   // 鼠标离开隐藏修改按钮
    mouseLeaveTable(row, column) {
      // 隐藏修改
      if (column.property === 'shareName') {
        this.tableData[row.rowIndex].dis = false;
      }
    },
      // 修改按钮的点击事件
    openObserverName(row) {
      this.observerRow = { ...row };
      this.dialogName = true;
    },
   // 计算内容的长度
    judgeLen(str) {
      let strlen = 0;
      for (let i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 255) {
          strlen += 2; //如果是汉字,则字符串长度加2
        } else {
          strlen++;
        }
      }
      return strlen;
    },

scss

.nameRow {
  position: relative;
  padding-right: 25px;
  .edit {
    position: absolute;
    right: 0;
    top: 1px;
    cursor: pointer;
    font-size: 12px;
    color: #308af4;
    // vertical-align: bottom;
  }
  .commedit {
    position: absolute;
    top: 2px;
    right: -32px;
    font-size: 12px;
    line-height: 14px;
    color: #308af4;
    padding-left: 4px;
    cursor: pointer;
  }
}
.rel {
position: relative;
}

如有问题请请留言,欢迎交流

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-05-31-element中table表hover显示隐藏表单的实现 的相关文章

随机推荐

  • XShell SecueCTR工具远程安装激活 连接使用

    1 1Xshell下载 中文官方网站 http xshellcn com 外文官方网站 https www netsarang com download free license html 这里使用Xshell连接ubuntu 需要Linu
  • 2022年江西省中职组“网络空间安全”赛项模块B-网页渗透

    2022年中职组山西省 网络空间安全 赛项 B 10 网页渗透解析 不懂私信博主 联系方式 3260344435 一 竞赛时间 420分钟 共计7小时 吃饭一小时 二 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第 阶段 单兵模
  • 动手学习TCP下

    1 拥塞控制 由于TCP协议向应用层提供不定长字节流传输能力 这将使得TCP有意愿去占满整个网格带宽 如果网络中TCP连接都试图占满整个带宽 那么就可能出现网络拥塞 导致吞吐量下降 极端情况引起网络瘫痪 TCP的拥塞控制算法能够有效的降地低
  • Python自增运算介绍

    接触过其他语言的同学可能都知道算数运算符里面有个自增运算符 在写循环的时候非常常用 但是Python里面可能会不同 需要引起大家注意 请看以下Python代码 num 1 num 1 num 1 Python居然不认识 运算符 同理Pyth
  • ionic cordova 之File插件实现文件下载

    1 项目中引入File插件 File插件使用参见https ionicframework com docs native file 2 File下载文件实现代码示例 import Injectable from angular core i
  • 宫本武藏重做技能介绍 宫本武藏重做有哪些加强

    要说王者荣耀中哪个英雄能被称为超级兵 那肯定都会想到宫本武藏 而在最近 重做后的宫本武藏正式上线了 下面就一起来看看宫本武藏重做技能介绍吧 宫本武藏重做技能介绍 被动技能 二天一流 释放技能获得一重 势 每次普攻消耗一重 势 最高两重 根据
  • 我是华为人

    我是华为人 又见到老皮 Puerschel 已过了五年 这次他是带客户到中国来参观 依旧是神采奕奕 笑容满面 来去匆匆 他是德国人 大学一毕业就进入中国华为工作 一干就是五年 而且始终保持着高昂的斗志 愉快的心情 华为是什么吸引了他 让他能
  • cat /proc/meminfo的解读

    MediaTek On Line Loginhttps online mediatek com QuickStart QS00227 QSS02376 anon pages 匿名页 没有文件背景的页面 如stack heap 数据段等 他们
  • Redis下载安装与配置(windows)

    一 Redis下载 Redis官网建议使用Linux进行部署 未提供windows版本的Redis 但微软开发和维护着Windows64版本的Redis Windows64版本的Redis下载地址 Releases microsoftarc
  • 熟悉Kali源-无法定位软件包问题

    文章目录 Linux安装特性 问题和解决 结论和应对 参考 Linux安装特性 每个LINUX的发行版 比如ubuntu 都会维护一个自己的软件仓库 我们常用的几乎所有软件都在这里面 这里面的软件绝对安全 而且绝对的能正常安装 在ubunt
  • 增广拉格朗日函数的KKT条件及投影形式(projection form)

    我的这篇博文中介绍了增广拉格朗日函数及KKT条件 增广拉格朗日函数 The augmented Lagrangian 及其KKT条件 这篇文章中介绍了Lagrangian的KKT条件和投影形式 KKT条件和投影定理 Projection T
  • glTF2.0_01

    glTF2 0
  • Jenkins---Jenkins配置定时任务

    前言 当我们将自动化代码成功的部署到了Jenkins 领导突然有要求 想要每2小时进行看下自动化的结果 这个时候jenkins能帮助我们实现吗 答案是肯定的 jenkins上有构建定时器 接下来安静通过小小的例子如何操作 Jenkins定时
  • 学习笔记(STM32通用定时器)

    PS 自己做的笔记 质量不高T T 源教程视频 https www bilibili com video BV1th411z7sn vd source e9a6e1a7cd4e8068209a469f8be0be16 STM32F103C8
  • C++开源库集合

    C 开源库集合 Main Site Index Download mimetic A free GPL C MIME Library mimetic is a free GPL Email library MIME written in C
  • 刷脸支付市场生态朝着更加良性方向发展

    购物付款时 不用开机 只是看一眼支付设备 就能完成付款 今年以来 刷脸支付在大小商店 餐馆逐渐铺开 消费者和商家在感到新鲜 好奇的同时也发现 这一设备利用率高 体验比二维支付好 刷脸支付未来市场还在观察 移动支付和支付没有办法确定使用者到底
  • Springboot配置页面国际化

    有时候网站会涉及中英文甚至多语言的切换 这时候我们需要学习国际化 准备工作 先设置properties的编码为utf 8 编写国际化配置文件 在resources资源路径下新建i18n目录 存放国际化配置文件 3 建立一个login pro
  • jenkins从gitlab拉取代码

    1 生成秘钥 首先要在容器内创建SSH秘钥和公钥 进入jenkins命令行状态然后输入ssh keygen后会成产密钥对 存放在 root ssh 目录下 id rsa为私钥 id ras pub为公钥 可以用cat命令查看生成的公钥和私钥
  • leetcode刷题题解——173. 二叉搜索树迭代器

    迭代思路 private TreeNode node private Stack
  • 2021-05-31-element中table表hover显示隐藏表单的实现

    element中table表hover显示隐藏表单的实现 需求 实现鼠标悬停table中的某一列显示修改按钮 修改按钮跟随内容后间距8px 内容超过16字节显示 加上修改按钮 效果如下图 需求 实现鼠标悬停table中的某一列显示修改按钮