javascript - 悬停效果vue js
问题描述
我在我的 vuejs UI 中遇到了一个有趣的问题。
我正在使用它进行渲染,v-for
并且我只想为单个主题设置悬停效果
但发生的情况是列表中的所有项目都获得了悬停效果,而不仅仅是单个主题。
如何定位或获取列表中的特定主题?
我使用一个方法@mouseleave
来@mouseover
触发一个函数。我总是可以将 传递:key
给该方法,但我不知道如何定位使用函数内的键仅将 CSS 应用于该单个主题。
发生这种情况是因为列表中的所有项目都依赖于单个数据源。
如何仅将类/样式或 CSS 应用于该特定主题?
解决方案
设置和重置悬停的主题 ID,@mouseover
如下@mouseleave
所示:
<div @mouseover = "hoverToggle(subject.id, 'mouseOver')"
@mouseleave = "hoverToggle(subject.id, 'mouseLeave')">
在函数中进行如下更改:
hoverToggle = function(subjectId, action){
switch(action){
case 'mouseOver':
this.hoveredSubjectId = subjectId;
case 'mouseLeave':
this.hoveredSubjectId = "";
}
}
为您添加动态类,div
如下所示:
<div class="(subject.id === hoveredSubjectId) ? 'hover':'no-hover'">
推荐阅读
- asp.net-core - 如何从 asp.net API 请求 Google Drive 访问权限
- oracle - AUTO-Synhronize 基于视图的表 - ORACLE DATABASES
- api - MarkLogic - API 请求和恢复数据库
- c# - 建模 LINQ cosmos db 时是否应该创建“Id”属性?
- reactjs - 登录反应后无法读取cookie
- flutter - Dart 使用 * 来制作一些方法而不是定义自己
- flutter - getter 导致最大调用堆栈大小超过颤振
- typescript - 打字稿。如何获取枚举项数据作为类型
- php - 使用 post 读取数据
- apache-kafka - Kafka 可以仅根据流量将分区重新分配给另一个消费者吗?