JQuery - 替换悬停时的图像

2023-12-04

我有一个图像文件夹。在这个文件夹中,我有两种类型的几张图像;一png和一个gif。显示的图像是png版本。在图像悬停时,我需要将其替换为它的gif版本。当悬停消失时,将png版本回到原位。

我目前有以下有效的方法

$(".image-container").mouseover(function () {
    var imgName = $(this).find('img').attr('src');
    var img2 = imgName.substring(0, imgName.lastIndexOf("."));
    $(this).find('img').attr("src", img2+".gif");
}).mouseout(function () {
    var imgName = $(this).find('img').attr('src');
    var img2 = imgName.substring(0, imgName.lastIndexOf("."));
    $(this).find('img').attr("src", img2+".png");
});

它有效,但我不喜欢我重复事情的方式。有什么办法可以提高效率吗?

Thanks


我会说,使用data-*属性以更好的方式。我建议你有这样的东西:

<img src="img.png" data-src="img.png" data-hover="img.gif" alt="" class="image-container" />

在 jQuery 中:

$(".image-container").mouseover(function () {
  $(this).attr('src', $(this).data("hover"));
}).mouseout(function () {
  $(this).attr('src', $(this).data("src"));
});

或者简而言之,您还可以使用.replace(). You 不需要 regex对于这个简单的替换:

$(".image-container").mouseover(function (e) {    
    $(this).attr("src", $(this).attr("src").replace(".png", ".gif"));
}).mouseout(function (e) {
    $(this).attr("src", $(this).attr("src").replace(".gif", ".png"));
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery - 替换悬停时的图像 的相关文章

随机推荐

  • 使用clock()函数调度任务时出现问题

    我想以不同的时间间隔安排任务 0 1 秒 0 9 秒 2 秒等 我使用 Clock C 函数返回自模拟开始以来的滴答数 并使用 CLOCKS PER SEC 将滴答数转换为秒 但我注意到当瞬时为浮点时 任务不会被调度 但是当它是一个整数 这
  • 如何将sql返回转换为自定义对象? [复制]

    这个问题在这里已经有答案了 在我的代码中 我在存储参数的 SQL 表上进行 SELECT 我想以这种方式输出一个 OBJECT inscription max 0 inscription open false liste attente m
  • 为什么在一种情况下,大数相乘会得到错误的结果?

    这看起来很简单 但我没有任何答案 当我写的时候 System out println 100 1000 10000 100000 System out println 100 1000 10000 100000 0 它返回这些值 27644
  • Html Select 标签中的多行选项可能吗?

    是否可以 仅使用 HTML 显示select with option每个跨越多行 无法使用 html 选择控件 您可以使用 JavaScript 和 css 将 div 用作下拉列表
  • Boost Spirit 因琐碎语法而编译错误

    我正在尝试使用以下规则编译解析器 else statement lit else gt statement if statement lit if gt gt gt gt expression gt gt gt gt statement g
  • 如何在 Java 中将 UTF-8 转换为 US-Ascii

    我们有一个系统 客户 主要是欧洲客户 输入文本 UTF 8 必须将其分发到不同的系统 其中大多数系统接受 UTF 8 但现在我们还必须将文本分发到仅接受美国的美国系统 Ascii 7 位 所以现在我们需要将所有欧洲字符转换为最接近的美国 A
  • 当非浏览器客户端的安全 webapi 时,与 ADFS 一起使用什么协议

    我们的 webapi 端点用于基于浏览器的客户端 Angular 和基于非浏览器的客户端 restsharp 并且 webapi 目前使用被动 WS Federation 作为协议和 ADFS 作为 STS 进行保护 目前 我们对 Rest
  • Django HTML 模板中的 Javascript 变量

    我正在编写一个 Django 应用程序 虽然对 Django 有点熟悉 但对 JavaScript 相当不熟悉 我将几行 JavaScript 添加到我的一个页面中以包含地图 该脚本仅包含初始化地图 然后根据数据库中保存的信息添加标记 鉴于
  • ClearCase UCM - 如何从最新基线仅获取最新版本

    如何从最新基线仅获取最新版本 例如 第一次在 ClearCase 中 开发人员第一次签入 我们会有 a zip b zip ClearCase 执行增量基线基线 1 然后构建工具进来 它是否获得工件 并部署它 一切看起来都很好 第二次在 C
  • 完全取消变基

    我执行了这样的变基 git rebase onto master new background processing export background processing 这没有达到我想要的效果 所以我执行了重置 git reset h
  • Asp.net core 2.0网站,缓存控制未按预期工作

    在我的 asp net core 2 0 应用程序中 我尝试将过期标头 缓存控制 添加到所有静态资源的响应标头中 但它并没有全部添加 下面是我的代码 public IServiceProvider ConfigureServices ISe
  • 在 CodeIgniter 3 中删除 index.php 时出现的问题

    我想访问我的网址而不需要index php在代码点火器中 这是我的Blog控制器 class Blog extends CI Controller public function index echo hello world public
  • TypeError:对象不是 Node.js 函数

    我正在 Lynda com 上进行 Node js 基本培训 跟随视频但我在终端中收到此错误 类型错误 对象不是函数 节点模块 飞行 index js var count 0 destinations var Flight function
  • MapKit 的点击手势

    目前我有一张地图 其中有几个Annotations For the Annotations I have func mapView mapView MKMapView didSelect view MKAnnotationView Do y
  • 解密销售合作伙伴 API 报告

    我正在尝试解密销售合作伙伴 api 报告 但在解密时我在 decipher final 附近收到此错误 Node Error error 0606506D digital envelope routines EVP DecryptFinal
  • Android 自定义字体 - 适用于 Actionbar、Toast、Dialogs 等系统组件

    我正在开发翻译成不支持的语言的应用程序 设备上缺少字体 因此 我向应用程序添加了字体 并更改了所有 TextView EditText 按钮的字体 我还可以更改 WebView 中的字体 但现在我需要更改所有系统组件的字体 操作栏 标题下拉
  • java 如何让定时器返回时间

    一旦我开始运行计时器 如何让它返回已经过去了多长时间 这个定时器可以设置可见吗 作为第二个参数传递给 Timer 构造函数的对象实现了 ActionListener 通过该接口 它会在计时器发出的每个警报时接收对其 actionPerfor
  • 使用 Python“请求”模块进行代理

    只是一个关于优秀的简短而简单的介绍RequestsPython 的模块 我似乎无法在文档中找到变量 代理 应包含的内容 当我向它发送一个带有标准 IP PORT 值的字典时 它拒绝了它要求的 2 个值 所以 我猜 因为这似乎没有在文档中涵盖
  • gprof 的时间采样问题

    我正在尝试使用 gprof 分析一些用 g 编译的 C 代码 包括选项 pg 然而 尽管该程序在我的计算机上运行需要 10 15 分钟 CPU 已满 但 gprof 生成的表中的 time cumulative Seconds 和 self
  • JQuery - 替换悬停时的图像

    我有一个图像文件夹 在这个文件夹中 我有两种类型的几张图像 一png和一个gif 显示的图像是png版本 在图像悬停时 我需要将其替换为它的gif版本 当悬停消失时 将png版本回到原位 我目前有以下有效的方法 image containe