You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

图片加载时显示GIF加载图标:现有脚本能否实现?

嘿,你的现有脚本目前还没实现加载GIF图标的功能,但只要稍微调整补充一下就能搞定啦!下面是具体的实现方案:

实现图片加载时显示GIF加载图标的完整方案

你的原代码仅完成了获取数据后设置图片src的逻辑,缺少加载状态的控制,我们需要添加几个关键步骤来实现需求:

1. 先准备加载GIF的DOM元素

在页面中添加一个加载图标容器(默认隐藏),可以用GIF图作为加载指示器:

<!-- 示例:居中显示的加载图标,可根据你的布局调整样式 -->
<div id="loading-spinner" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); display: none;">
  <img src="loading.gif" alt="加载中..." />
</div>

2. 修改脚本,添加加载状态控制

调整你的$.get请求逻辑,在请求发起时显示加载图标,然后在图片加载完成/失败、AJAX请求失败时隐藏图标:

// 发起请求前先显示加载图标
$('#loading-spinner').show();

$.get('http://192.168.1.69:8090/VirtualRadar/AirportDataThumbnails.json?icao=' + p.Icao + '&reg=' + p.Reg, function(res) {
  var error = res.status;
  if (error == "404") {
    // 设置占位图,并绑定加载完成/失败事件
    $("#image").attr('src', "placeholder.jpg")
      .on('load error', function() {
        $('#loading-spinner').hide();
      });
    $("#image2").attr('src', "placeholder.jpg")
      .on('load error', function() {
        $('#loading-spinner').hide();
      });
  } else {
    // 假设接口返回了图片地址,比如res.thumbnail1、res.thumbnail2
    $("#image").attr('src', res.thumbnail1)
      .on('load error', function() {
        $('#loading-spinner').hide();
      });
    $("#image2").attr('src', res.thumbnail2)
      .on('load error', function() {
        $('#loading-spinner').hide();
      });
  }
})
// 处理AJAX请求失败的情况,也要隐藏加载图标
.fail(function() {
  $('#loading-spinner').hide();
  // 请求失败时设置占位图
  $("#image").attr('src', "placeholder.jpg");
  $("#image2").attr('src', "placeholder.jpg");
});

关键细节说明

  • 你提到的$('#image').load()写法,在新版本jQuery中更推荐用$(elem).on('load', fn),同时必须监听error事件——如果图片加载失败(比如占位图也找不到),加载图标会一直显示,所以失败场景也得处理。
  • 一定要在发起AJAX请求前就显示加载图标,不然如果AJAX请求本身耗时较长,用户会看不到加载状态。
  • 如果需要等两张图片都加载完成再隐藏图标,可以用$.when()监听多个图片的加载完成事件:
// 示例:等待两张图片都加载完成/失败后隐藏图标
var img1Load = $("#image").attr('src', res.thumbnail1).promise();
var img2Load = $("#image2").attr('src', res.thumbnail2).promise();

$.when(img1Load, img2Load).always(function() {
  $('#loading-spinner').hide();
});

这样修改后,就能在图片加载过程中显示GIF加载图标,加载完成或失败时自动隐藏啦!

内容的提问来源于stack exchange,提问作者kdawg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:41:01