如何去掉ElementUI Table的hover变色问题

目录
  • 去掉ElementUI Table的hover变色
    • 用函数方法
  • ElementUI使用table时,取消鼠标点击、hover对某一行背景颜色变化
    • 实例

去掉ElementUI Table的hover变色

在自定义Element的时候,有一些自带特效我们不想要,去掉又不知道怎么去掉。

比如Table的hover变色。

其实方法并不是去掉,而是让他看起来不变。

开始↓定义单元格背景色:

<el-table
     :cell-style="{background:'#f5f5f5'}"
     >

定义单元格hover颜色:

 .el-table tbody tr:hover>td {
            background-color:#f5f5f5 !important
        }

其实就是让hover颜色跟背景色一样啊

用函数方法

:cell-style="setCellStyle"

函数方法为

setCellStyle({ row, column, rowIndex, columnIndex }) {
        if (column.label === '当前列表头的名字') {
          return "background:#e8e8e8;"//可以设置颜色或者边框
        }
        if (columnIndex === 4) {
          return "background:#e8e8e8;"
        } else {
          return "background:#e8e8e8;"
        }
      }

ElementUI使用table时,取消鼠标点击、hover对某一行背景颜色变化

在使用ElementUI中的table时,往往会有这样的需求:针对某种状态对table表格中的某一行数据进行高亮显示,但同时又要取消鼠标点击事件和hover对高亮显示的行不受影响。

具体的高亮显示,官网中有文档介绍:可以通过指定 Table 组件的 row-class-name 属性来为 Table 中的某一行添加 class,表明该行处于某种状态。

实例

<el-table v-loading="loading.table" :data="data.list.items" fit :cell-style="cellStyle" element-loading-text="玩命加载中"
			element-loading-spinner="el-icon-loading" header-cell-class-name="table-header-cell" style="width:100%"
			@selection-change="handleSelectionChange" border :row-class-name="tableRowClassName">
			<el-table-column type="selection" width="55">
			</el-table-column>
			<el-table-column label="项目编号" align="center" prop="id" min-width="100">
			</el-table-column>
			<el-table-column label="项目名称" align="center" prop="xmmc" min-width="150">
			</el-table-column>
			<el-table-column label="计划开工日期" align="center" prop="jhkgrq" min-width="150">
				<template slot-scope="scope">
					{{ scope.row.jhkgrq | dateFormart('yyyy-MM-dd') }}
				</template>
			</el-table-column>
			<el-table-column label="计划竣工日期" align="center" prop="jhjgrq" min-width="150">
				<template slot-scope="scope">
					{{ scope.row.jhjgrq | dateFormart('yyyy-MM-dd') }}
				</template>
			</el-table-column>
			<el-table-column label="项目地址" align="center" prop="xmwz" min-width="150" :show-overflow-tooltip='true'>
			</el-table-column>
			<el-table-column label="项目所属区域" align="center" prop="qymc" min-width="150">
			</el-table-column>
			<el-table-column label="是否竣工" align="center" prop="sfjg" min-width="120" :formatter="stateFormat">
			</el-table-column>
			<el-table-column label="操作" align="center" prop="state" min-width="240">
				<template slot-scope="scope">
					<el-button icon="el-icon-search" size="mini" type="success" @click="lookHandler(scope.$index, scope.row)">查看
					</el-button>
					<i v-if="scope.row.sfjg==1">
						<el-button icon="el-icon-edit" size="mini" type="success" :disabled="true"
							@click="editHandler(scope.$index, scope.row)">
							编辑
						</el-button>
					</i>
					<i v-else>
						<el-button icon="el-icon-edit" size="mini" type="success" @click="editHandler(scope.$index, scope.row)">
							编辑
						</el-button>
					</i>
				</template>
			</el-table-column>
		</el-table>

颜色标记处理:

tableRowClassName({ row, rowIndex }) {
	if (row.sfjg == 1) {
		return "success-row";
	} else if (row.sfjg == 0) {
		return "warning-row";
	} else {
		return "";
	}
},

在全局样式中定义高亮颜色显示

/*列表的表头*/
.table-header-cell {
	background-color:#8bd2c2!important;
	color: #fff;
	font-weight: 400;
}
.el-table .success-row {
    background: #ffb707!important;
}
.el-table .warning-row {
	background: #def6f6;
}

这样就完成了某一行的高亮显示,取消鼠标事件和hover对高亮显示的行影响,我的列表(只作为数据展示)是取消了highlight-current-row 是否要高亮当前行 这个属性,就正常了。

因为:row-class-name="tableRowClassName"在渲染表格的时候就调用了,不能用来响应点击事件改变行的颜色。

或者可以给表格增加:highlight-current-row属性,高亮显示当前行,然后通过修改css样式来改变颜色:

定义响应事件

.el-table__body tr.current-row>td {
        background: #ffb707!important;
    }

定义hover事件

.el-table--enable-row-hover .el-table__body tr:hover > td {
   background-color: #ffb707!important
}

改变不了就融入他们,在hover、鼠标点击事件时让他们的颜色与背景色一样就可以.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue鼠标hover(悬停)改变background-color移入变色问题

    目录 鼠标 hover(悬停)改变 background-color 鼠标悬停更换图片/文字内容,动态展示/修改某些属性 鼠标 hover(悬停)改变 background-color <div id="demo">    <div @mouseenter="mouseEnter"          @mouseleave="mouseLeave"          :style="active">  

  • vue使用v-for实现hover点击效果

    使用Vue来实现鼠标悬停效果.可以使用事件处理器v-on指令(简写为:@)来完成.为标签绑定mouseenter以及mouseleave事件即可. hover是css中的选择器,用于选择鼠标指针浮动在上面的元素.所以a:hover可用于设置当鼠标悬停在超链接之上时超链接的样式. 在当今比较流行的前端框架里 vue react 都是以数据驱动的形式来修改元素的状态, 而并非是之前使用jq来操作dom元素, 这样效率也是非常低的, 像vue, react 都是以虚拟dom的形式渲染页面, 以数据的变

  • Vue实现鼠标悬浮切换图片src

    本文实例为大家分享了Vue实现鼠标悬浮切换图片src的具体代码,供大家参考,具体内容如下 需求: 1. 鼠标悬浮到图示按钮上面,图片切换成灰色按钮2. 鼠标离开图示按钮,图片切换成回白色按钮 Html部分: <!-- 如果此处的两个鼠标事件不生效,可以在mouseenter后面添加.native后缀 --> <div class="left-btn"      @click="saveTemplate()"      @mouseenter=&qu

  • vue实现鼠标经过显示悬浮框效果

    本文实例为大家分享了vue实现鼠标经过显示悬浮框效果的具体代码,供大家参考,具体内容如下 项目架构采用vue-cli脚手架搭建的webpack项目 实现的效果如下: 鼠标经过button 右边显示出一个悬浮框 鼠标移出buttom元素 悬浮框隐藏 并且悬浮框可以随着鼠标的移动而改变位置 全部代码如下: <template>   <div class="hello">     <div id="focus_toolTip" class=&

  • 如何去掉ElementUI Table的hover变色问题

    目录 去掉ElementUI Table的hover变色 用函数方法 ElementUI使用table时,取消鼠标点击.hover对某一行背景颜色变化 实例 去掉ElementUI Table的hover变色 在自定义Element的时候,有一些自带特效我们不想要,去掉又不知道怎么去掉. 比如Table的hover变色. 其实方法并不是去掉,而是让他看起来不变. 开始↓定义单元格背景色: <el-table      :cell-style="{background:'#f5f5f5'}&

  • 使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <!-- 引入的css压缩文件 --> <link rel="stylesheet" type="text/css" href=&quo

  • 详解使用element-ui table组件的筛选功能的一个小坑

    使用element-ui table组件的筛选功能的一个小坑 使用自定义模板和筛选功能,一开始的代码 <el-table-column v-if="key==='isShow'" label="是否在发现页展示" :filters="[{text:'已展示',value: true},{text: '未展示', value: false}]" :filter-method="filterShow"> <tem

  • Vue ElementUI table实现表格斜线分隔线

    本文实例为大家分享了Vue ElementUI table给表格一个斜线分隔线的具体代码,供大家参考,具体内容如下 效果: 实现: 通过改css样式实现 1.去掉第一个单元格的下边框/2.第一列第一个单元格和第二个单元格的伪元素设置绝对定位,宽度设成1px,高度根据自己表格调整3.通过旋转两个单元格伪元素,并设置旋转起始点,使两个伪元素旋转到重合位置,达到斜线的效果 代码: 1.html <el-table     :data="tableData3"     style=&qu

  • jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例

    本文实例讲述了jQuery实现Table表格隔行变色及高亮显示当前选择行效果.分享给大家供大家参考,具体如下: 最近客户要求高亮选择列表的功能,于是顺便做了个,作为记录. 前台代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=

  • javascript实现table表格隔行变色的方法

    本文实例讲述了javascript实现table表格隔行变色的方法.分享给大家供大家参考.具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>table间隔色</title

  • Element-ui table中过滤条件变更表格内容的方法

    组件中: <el-table :data="users" highlight-current-row v-loading="listLoading" style="width: 100%;"> <el-table-column prop="sex" label="性别" width="100" :formatter="formatSex" sorta

  • vue element-ui table表格滚动加载方法

    添加全局注册事件,用来监听滚动事件 window.Vue.directive('loadmore', { bind(el, binding) { const selectWrap = el.querySelector('.el-table__body-wrapper') selectWrap.addEventListener('scroll', function() { let sign = 100 const scrollDistance = this.scrollHeight - this.

  • Element-UI Table组件上添加列拖拽效果实现方法

    Element-UI 的 Table组件很强大,但是我们的需求更强大... 简单粗暴的来一发效果图: 一.数据驱动 传统的拖动效果,都是基于通过 mousedown.mousemove.mouseup 事件来修改删减 dom 节点 但 Vue 是一个数据驱动的前端框架,开发时应尽量避免操作 dom 而且 Element-UI 的 Table 组件封装得很严谨,直接操作 dom 很容易产生不可预计的 bug 所以我的核心思路就是:通过一个数组渲染表头(列),然后修改这个数组的顺序,从而修改列表的列

  • elementUI table表格动态合并的示例代码

    1.最近在做的erp项目,有一个需求是同一个客户下的同种订单,需要合并展示.使用elementUI table组件的方法 :span-method="objectSpanMethod".官网上看了一下demo,做的很直白,不过不太符合业务.在网上找了篇文章参考了一下 2.效果图如下: 在动态处理从后端拿回来的数据的时候,是需要从数据中找到一个唯一的"标识"去判断是否是相同种类的数据.然后根据这个"标识"去做逻辑判断. 3.代码: //合并单元格

随机推荐