elementUI点击el-card选中变色,且点击别的空白处不变色

1. <script>的data中添加属性:

复制代码
selectIndex: 0

2.<template>中添加el-card元素:

@click.native调用原生click方法。

@click.native是在vue中,避免vue父模块调用成了vue成子模块中的**this.emit('click', value)**的方法,而不是我们想调用的原生click方法。(具体查看"@"在vue标签中的应用)

  • 当点击某元素时,selectedIndex设置成当前元素的index,":class"动态css方式 给当前元素增加一个active的class样式。
  • 如果点击别的元素时,index会改变,则当前元素的**":class"动态css方式** 会自动计算去除active样式。新点击的元素会增加active的class样式。
  • 当点击别的空白处时,由于index不变,所以active样式会一直保留。
复制代码
<el-card
 :class="selectedIndex === index ? 'active':''"
 @click.native="selectedIndex = index"
 v-for="(item, index) in itemList"
 :key="index">

<div>你的内容</div>

</el-card>

3.<style>中添加样式:

其中el-card是<el-card>自带的css样式,浏览器F12开发者模式可查。

复制代码
.el-card.active {
  color:#0C5ACF;
  border: 1.5px solid #5a81fe;
}

其实这里的<el-card>也可以换成普通的<div>标签,只需要给该<div>指定好一个css即可。

补充

如果要点击选中变色,点击别处颜色消失的效果,则:

由于div不支持:focus伪类,可通过增加tabIndex="1" 属性使其支持css伪类**:focus**

(普通元素类似input或button按钮不用 tabindex="1",直接使用:focus)

复制代码
.el-card:focus {
  color:#0C5ACF;
  border: 1.5px solid #5a81fe;
}

参考:

css元素点击后变色,且点击别的地方不会颜色消失_css中点击后变色且不消失-CSDN博客

相关推荐
是梦终空9 小时前
vue下载依赖报错npm ERR node-sass@4.14.1 postinstall: `node scripts/build.js`的解决方法
javascript·npm·vue·node-sass·vue依赖
陈陈小白9 小时前
npm run dev报错Error: listen EADDRINUSE: address already in use :::8090
前端·npm·node.js·vue
韩立学长15 小时前
【开题答辩实录分享】以《证劵数据可视化分析项目设计与实现》为例进行答辩实录分享
python·信息可视化·vue
二当家的素材网19 小时前
【无标题】
vue·uniapp
合作小小程序员小小店1 天前
web网页开发,在线%考试管理%系统,基于Idea,vscode,html,css,vue,java,maven,springboot,mysql
java·前端·系统架构·vue·intellij-idea·springboot
.NET快速开发框架1 天前
国思RDIF低代码快速开发框架 v6.2.2版本发布
低代码·vue·rdif·国思rdif开发框架
IT教程资源D1 天前
[N_148]基于微信小程序网上书城系统
mysql·vue·uniapp·前后端分离·网上书城小程序·springboot书城
摇滚侠2 天前
Vue 项目实战《尚医通》,底部组件拆分与静态搭建,笔记05
前端·vue.js·笔记·vue
键盘飞行员2 天前
Vue3+TypeScript项目中配置自动导入功能,遇到了问题需要详细的配置教程!
前端·typescript·vue
唆了蜜.3 天前
ESLint: Expected indentation of * spaces but found *. (style/indent)
开发语言·javascript·vue·webstorm