【无标题】vue2鼠标悬停(hover)时切换图片

news2025/1/11 6:07:22

在Vue 2中,要实现鼠标悬停(hover)时切换图片的功能,你不能直接在模板的:src绑定中处理这个逻辑,因为Vue的模板不支持条件渲染的复杂逻辑(如基于鼠标状态的动态图片切换)。但是,你可以通过组合使用Vue的数据绑定、计算属性或方法来达到这个目的。

一个常见的方法是使用数据或计算属性来跟踪每个卡片的hover状态,并在模板中根据这个状态来动态改变:src的值。但是,由于v-for循环中的每个元素都需要一个独立的hover状态,所以你不能简单地在组件的data对象中存储一个单一的hover状态。相反,你可能需要一个数组或对象来跟踪每个元素的hover状态。

以下是一个Vue 2组件的示例,展示了如何在鼠标悬停时切换图片:

<template>  
  <div>  
    <div class="card" v-for="(item, index) in list" :key="index" @mouseover="hoverItem(index, true)" @mouseleave="hoverItem(index, false)">  
      <img :src="getHoverImage(index)" alt="">  
      <p>{{ item.name }}</p>  
    </div>  
  </div>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      list: [  
        { name: 'Item 1', img: 'path/to/default-image-1.jpg', hoverImg: 'path/to/hover-image-1.jpg' },  
        // 添加更多项目...  
      ],  
      hoverStates: {} // 用于跟踪每个卡片的hover状态  
    };  
  },  
  methods: {  
    hoverItem(index, isHover) {  
      // 更新hoverStates对象中对应索引的hover状态  
      this.$set(this.hoverStates, index, isHover); // 使用$set确保响应性  
    },  
    getHoverImage(index) {  
      // 根据hover状态返回相应的图片路径  
      return this.hoverStates[index] ? this.list[index].hoverImg : this.list[index].img;  
    }  
  }  
};  
</script>  
  
<style scoped>  
/* 添加你的样式 */  
</style>

在这个示例中,hoverStates对象用于跟踪每个卡片的hover状态。hoverItem方法被用作事件处理器,当鼠标悬停或离开卡片时更新hoverStates中对应索引的hover状态。getHoverImage计算属性(虽然在这个例子中被实现为方法,但更合适的可能是计算属性,因为它基于响应式数据返回新的值)根据hover状态返回相应的图片路径。

请注意,我使用了this.$set来更新hoverStates对象,这是因为Vue不能检测到对象属性的添加或删除(除非属性已经是响应式的)。$set方法确保新添加的属性也是响应式的,从而触发视图更新。

另外,请注意,虽然我在这个示例中将getHoverImage实现为方法,但在许多情况下,将其实现为计算属性可能更合适,因为计算属性是基于它们的响应式依赖进行缓存的。然而,在这个特定的例子中,由于我们直接根据索引访问数据,并且索引是传递给方法的参数,所以将其实现为方法也是可以接受的。但是,如果你有一个更复杂的场景,其中计算属性依赖于组件的多个响应式属性,那么使用计算属性将是更好的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图新说产品入门指南(让汇报变得轻松)

1.图新说是什么&#xff1f; 图新说是一个容器&#xff1a;可以加载融合各种无人机航测成果&#xff08;影像、地形倾斜模型&#xff09;、基础地理信息数据&#xff08;卫星影像、道路标注、水系、地质图、等高线、地形晕渲、人口等专题地图&#xff09;、业务数据&#xff0…

计算机基础(Windows 10+Office 2016)教程 —— 第6章 电子表格软件Excel 2016(上)

电子表格软件Excel 2016 6.1 Excel 2016入门6.1.1 Excel 2016 简介6.1.2 Excel 2016 的操作界面组成6.1.3 Excel 2016 的视图方式6.1.4 Excel 2016 的工作簿及其操作6.1.5 Excel 2016 的工作表及其操作6.1.5 Excel 2016 的工作表及其操作6.1.6 Excel 2016 的单元格及其操作 6.2…

在欧拉系统中安装数据库

在欧拉系统中的安装 &#xff08;禁止超级用户root登录&#xff09; yum install mariadb-server -y #下载命令 systemctl enable --now mariadb #设置为开机自启&#xff0c;并立即启动该服务 mysql_secure_installation #安全设置&#xff0c;初始化 修…

VS code-解决连接远端云服务器时什么都没有变化

问题描述&#xff1a; 在有一次使用VS code连接远端云服务器的时候&#xff0c;输入用户名和公网ip连接远端云服务器的时候&#xff0c;一直没有任何响应&#xff0c;一直跳转&#xff0c;插件扩展的界面。 解决办法&#xff1a; 找到我们的config配置文件&#xff0c;然后在文…

全球汽车线控制动系统市场规模预测:未来六年CAGR为17.3%

引言&#xff1a; 随着汽车行业的持续发展和对安全性能需求的增加&#xff0c;汽车线控制动系统作为提升车辆安全性和操控性的关键组件&#xff0c;正逐渐受到市场的广泛关注。本文旨在通过深度分析汽车线控制动系统行业的各个维度&#xff0c;揭示行业发展趋势和潜在机会。 【…

MyBatis开发:使用注解

在应⽤分层学习时, 我们了解到web应⽤程序⼀般分为三层&#xff0c;即&#xff1a;Controller、Service、Dao .之前的案例中&#xff0c;请求流程如下: 浏览器发起请求, 先请求Controller, Controller接收到请求之后, 调⽤Service进⾏业务逻辑处理, Service再调⽤Dao, 但是Dao层…

记录使用FlinkSql进行实时工作流开发

使用FlinkSql进行实时工作流开发 引言Flink SQL实战常用的Connector1. MySQL-CDC 连接器配置2. Kafka 连接器配置3. JDBC 连接器配置4. RabbitMQ 连接器配置5. REST Lookup 连接器配置6. HDFS 连接器配置 FlinkSql数据类型1. 基本数据类型2. 字符串数据类型3. 日期和时间数据类…

Spring 如何集成日志框架

文章目录 一、日志依赖1.1 Spring 如何集成日志1.2 SpringBoot 的默认日志门面和日志系统 二、日志配置2.1 SpringBoot 日志配置方式2.2 SpringBoot 日志重定向到文件 参考资料 一、日志依赖 1.1 Spring 如何集成日志 从Spring Framework 5.0开始&#xff0c;Spring 在 sprin…

淘宝的商品信息缓存体系是如何构建的?

0 前言 在电商系统中&#xff0c;商品信息的快速获取对用户体验至关重要。本文将详细讲解一个多层级的商品信息缓存体系&#xff0c;旨在提高系统性能和可靠性。 开局一张图&#xff0c;剩下全靠编&#xff01; 1 整体架构 该缓存体系采用了多级缓存策略&#xff0c;从前端到…

influxDB的常用命令

目录 1.查看数据库命令 2.进入某数据库命令 3.创建表的命令 (host 和region 字段是必须的) 4.显示所有的表命令 5. 删除表 6.查询表数据 7.显示数据库用户 8.创建用户 9.创建管理员用户 10.修改密码(密码用单引号括住&#xff0c;不要用双引号) 11. 分配数据库访问权…

满客宝后台管理系统 downloadWebFile 任意文件读取漏洞复现(XVE-2024-18926)

0x01 产品简介 满客宝后台管理系统由正奇晟业&#xff08;北京&#xff09;科技有限公司开发&#xff0c;满客宝智慧食堂系统的重要组成部分&#xff0c;它为餐饮管理者提供了一个全面的、智能化的管理平台。该系统集成了用户管理、消费限制、菜谱管理、卡务管理、进销存管理、…

Linux进程间通信1

文章目录 前言管道命名管道 / FIFO消息队列 前言 进程之间可能会存在特定的协同工作的场景&#xff0c;而协同就必须要进行进程间通信&#xff0c;协同工作可能有以下场景。 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件…

【TDH社区版大事件】图分析、全文检索、小文件治理、数据开发工具通通都有!

星环科技大数据基础平台TDH社区版&#xff0c;在保留了商业版核心技术优势的基础上最大程度地降低了用户使用大数据技术的门槛与成本&#xff0c;具有更轻量、更简单、更易用等特性。 此次TDH社区开发版、社区版、社区订阅版均发布了新版本&#xff0c;带来新的产品组件和新的…

我是如何给阿里大神Tree工具类做CodeReview并优化的

首发公众号&#xff1a;赵侠客 引言 前段时间我写了一篇关于树操作的工具类《解密阿里大神写的天书般的Tree工具类&#xff0c;轻松搞定树结构&#xff01;》&#xff0c;当时主要把精力集中在分析代码的实现层面&#xff0c;没有从设计层面、性能层考虑&#xff0c;然后就被很…

Linux网络之多路转接——老派的select

目录 一、高级IO 1.1 概念 1.2 五种IO模型 1.3 小结 二、多路转接的老派 2.1 select 的作用 2.2 select 的接口 三、select 的编写 3.1 类的预先准备 3.2 类的整体框架 3.3 类的执行 Loop 四、Loop 中的回调函数 4.1 HandlerEvent 4.2 AcceptClient 4.3 Service…

二、4 函数的递归与迭代

1、n 的阶乘 2、斐波那契数列 &#xff08;1&#xff09;递归 用递归解决这个问题&#xff0c;由于需要多次重复计算&#xff0c;当 n 较大时&#xff0c;计算效率就非常慢 &#xff08;2&#xff09;迭代&#xff08;速度更快&#xff09;

C# 下⽀持表达式树的框架类型详解与示例

文章目录 什么是表达式树&#xff1f;表达式树的主要用途包括&#xff1a;表达式树节点类型示例&#xff1a;创建一个简单的加法表达式树示例&#xff1a;使用表达式树进行数据绑定示例&#xff1a;动态生成代码总结 在C#中&#xff0c;表达式树&#xff08;Expression Tree&am…

首届「中国可观测日」圆满落幕

首届中国可观测日&#xff08;Observability Day&#xff09;在上海圆满落幕&#xff0c;为监控观测领域带来了一场技术盛宴。作为技术交流的重要平台&#xff0c;此次活动不仅促进了观测云与亚马逊云科技之间的深化合作&#xff0c;更标志着双方共同推动行业发展的重要里程碑。…

红蓝绿三巨头集体拉胯,NVIDIA新显卡被核显秒了

最近蓝厂 intel 的瓜想必大家都已经吃上了吧&#xff1f;13-14 代中高端 CPU 大面积故障崩溃事件。 后续是 intel 官方回应&#xff0c;系微代码错误&#xff0c;请求电压较高导致的。 intel 目前给出的方案是&#xff0c;出现了问题的 CPU&#xff0c;intel 给予免费换新售后…