具有相同src的三个gif,仅重新加载其中一个

华金·迪亚兹(Joaquin Diaz)

所以我有三张图片,上面有一张gif:

<div class="cards_item">
    <div class="cards_item-imgs">
        <img id="cardAnimationOne" src="assets/images/iso.gif" alt="">
        <img src="assets/images/online-icon.png" alt="">
    </div>
</div>
<div class="cards_item">
    <div class="cards_item-imgs">
        <img id="cardAnimationTwo" src="assets/images/iso.gif" alt="">
        <img src="assets/images/gestion-icon.png" alt="">
    </div>
</div>
<div class="cards_item">
    <div class="cards_item-imgs">
         <img id="cardAnimationThree" src="assets/images/iso.gif" alt="">
         <img src="assets/images/integrar-icon.png" alt="">
    </div>
</div>

如果鼠标在图像上,我有一个重新加载gif的函数:

$('#cardAnimationOne').on('mouseenter', function(){     
  $('#cardAnimationOne').prop('src', '');
  $('#cardAnimationOne').prop('src', 'assets/images/iso.gif');
});

我想随时在鼠标上重新加载/重新触发每个(因此每个图像都有这些功能之一,并且出于测试/调试的目的,我只启用第一个)。我的问题是,尽管我只是选择第一个,但上面的JS会重新加载所有三个gif。

通过使用不同的名称保存gif三次,我找到了解决方案。在这种情况下,功能按每个图像的预期目的工作。

我的问题是:src即使我只编码一个要重新加载的图像,如果它们共享相同的图像,为什么还要重新加载/触发所有图像

克隆克斯

如果所有URL都相同,则某些浏览器(或全部?)将使GIF保持同步。我不知道这是有记录的还是特定的行为。

正如您所发现的那样,使GIF分开移动的最简单方法是为每个GIF使用唯一的URL,但是每次希望它出现时都为该文件创建一个副本可能不切实际。而是可以添加URL参数。这将使URL在浏览器中看起来是唯一的,但对GIF无效。

<div class="cards_item">
    <div class="cards_item-imgs">
        <img id="cardAnimationOne" src="assets/images/iso.gif?whatevertextyouwant=1" alt="">
        <img src="assets/images/online-icon.png" alt="">
    </div>
</div>
<div class="cards_item">
    <div class="cards_item-imgs">
        <img id="cardAnimationTwo" src="assets/images/iso.gif?whatevertextyouwant=2" alt="">
        <img src="assets/images/gestion-icon.png" alt="">
    </div>
</div>
<div class="cards_item">
    <div class="cards_item-imgs">
         <img id="cardAnimationThree" src="assets/images/iso.gif?whatevertextyouwant=3" alt="">
         <img src="assets/images/integrar-icon.png" alt="">
    </div>
</div>

从理论上讲,您也可以这样做:

let GifLoadingNumber = 0;

$('#cardAnimationOne').on('mouseenter', function(){
  $('#cardAnimationOne').prop('src', 'assets/images/iso.gif?whatevertextyouwant=' + GifLoadingNumber);
  GifLoadingNumber++;
});

...但是在我的测试中,Chrome尝试了几次后就停止从缓存中加载它,并且每次都开始从服务器中加载它,这使其重置两次(一次是在鼠标移过它时立即重置,第二次是大约半秒)稍后从服务器加载测试GIF时)。

我的考试很简单

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将2个阵列合并为第三个阵列,其中一个阵列具有不变的唯一键

仅当其中一个表引用父表时才从三个表中选择数据

在同一页面上处理三个表单,其中一个表单具有多个实例 - Django

我有一个包含4个点的3D图,我希望其中一个成为焦点,而其他三个具有将它们连接到焦点的线

r如果我有两个具有相同内容的独立组,如何删除其中一个?

基于三个表创建视图,其中三个表以列为其中一个表中的行

C ++:具有两个相同的功能,其中一个会产生错误。怎么了?

如果其中一个具有“ www”,则如何检查两个相同的URL的相等性?

通过其中一个的前三个唯一值对数组进行切片

我可以仅将一个RecyclerView用于具有不同设计的三个不同CardView吗?

当其中一个有图像子项时,如何使每个网格项具有相同的宽度/高度?

我用Spring Cloud设置了三个Rabbitmq队列,其中一个队列随机失败

具有3个表的INNER,OUTER或RIGHT JOIN,其中一个表具有与联接表相同的PK,但第1个不

从多个源文件构建内核模块,其中一个与模块具有相同的名称

有没有办法在数组中加载多个 fxml,然后在按下按钮时显示其中一个而不在 javaFX 中重新加载相同的 fxml?

检索具有相同 ID 的记录,其中列中一个值的出现次数大于另一个值的出现次数

如何在两个单独的变量上联接两个表,其中一个变量具有相同的名称

一个带有三个插槽的TaskManager是否与Apache Flink中三个带有一个插槽的TaskManager相同?

对 3 个表的 SQL 查询,其中一个具有不同的列名

在重新设置其中一个基础后,如何使两个具有共同历史的git分支彼此一致?

无法连接三个表并仅返回一个表中的所有记录

自动脚本化两个具有相同名称的文件夹,但其中一个文件夹带有前缀

如何定义一个具有2个参数的函数,其中一个是Tkinter的“事件”参数?

如何合并两个分支,其中第一个具有一个提交A,第二个已将提交A修改为B,并且三个提交在B之上?没有合并提交

如何使用仅使用其中一个向量的条件以相同方式对两个向量进行排序?

合并三个具有相同键的地图

React 重新渲染所有 dom,即使我只是更改其中一个

为什么在Ubuntu 18.04上安装了两个具有相同名称的软件版本,我可以删除其中一个吗?

合并两个结构相同的表,其中一个表具有优先级,并且按字段值排除