如何延迟 onClick 图像链接,以便 .gif 动画可以在页面切换之前完成?

Posted

技术标签:

【中文标题】如何延迟 onClick 图像链接,以便 .gif 动画可以在页面切换之前完成?【英文标题】:How do I delay an onClick image link so the .gif animation can finish before the page switches? 【发布时间】:2021-03-05 16:05:57 【问题描述】:

我有一个 .gif 动画,它会更改为新的 .gif 图像源 onClick,它还将 onClick 链接到另一个页面。我只是想弄清楚如何延迟链接,以便第二个 .gif 动画在切换页面之前完成。我该怎么做?

我当前的代码(运行 sn-p 时链接不会加载,但它可以在实际站点上运行);

<img src="https://lowlifeclothing.co/wp-content/uploads/2020/11/Loop12.gif" onclick="location.href = 'https://lowlifeclothing.co/shop/" id="image1">
<script> document.getElementById("image1").addEventListener("click", function() 
  this.src = "https://lowlifeclothing.co/wp-content/uploads/2020/11/Loop12D.gif"; location.href = 'https://lowlifeclothing.co/shop/'

    
); </script> 

【问题讨论】:

【参考方案1】:

这是一个可能的例子。

jQuery(function($) 
  $("#image1").click(function() 
    $(this).attr("src", "https://lowlifeclothing.co/wp-content/uploads/2020/11/Loop12D.gif");
    var url = $(this).attr("data-click-href");
    setTimeout(function() 
      window.location.href = url;
    , 1000);
  );
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="https://lowlifeclothing.co/wp-content/uploads/2020/11/Loop12.gif" data-click-href="https://lowlifeclothing.co/shop/" id="image1">

这使用setTimeout() 等待 1000 毫秒或 1 秒,然后更改 URL。这让 GIF 有时间加载和显示动画。

主要问题是您为同一个元素分配了两个点击事件。 onclick 将具有优先权,并会在点击时重定向。

【讨论】:

这正是我想要的!我能得到一些进一步的帮助吗?我是一名新手开发人员,现在正在尝试将此脚本添加到我的网站中,我在 Wordpress 上使用 Elementor 块生成器,我该如何将其插入?我有一个自定义 html 小部件,我一直在编写代码,直到我尝试复制并粘贴您的答案。当我在 *** 上运行 sn-p 时它可以工作,但不是我的网站。 @hunnaharms 我不熟悉那个 WP 插件。如果您仍在苦苦挣扎,我会查看支持文档或发布新问题。

以上是关于如何延迟 onClick 图像链接,以便 .gif 动画可以在页面切换之前完成?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 R 中的 animate 函数中保存 GIF 图像?

悬停图像时如何放置GIF?

将画布导出为 .gif 图像 [重复]

我正在使用 Giphy API,我想知道如何自动获取 GIF 的图像 URL,而不是手动获取

如何延迟从页面加载开始显示Gif?

如何在 Android 的 ListView 中延迟加载图像