【问题标题】:Change image with animated gif使用动画 gif 更改图像
【发布时间】:2013-12-29 17:20:24
【问题描述】:

我正在尝试使用动画 gif 更改图像。

有两张图片,一张是静态的,一张是动画的。点击黑色边框后,静态图片应该会变成一张动画,2秒后又会变回静态图片。

它可以工作,但由于某种原因,有时它不能正确同步。可能是由于 setimeout 功能?不过不确定。

$(document).ready(function () {
    var timer, timer2, timer3;
    $('#targetDIV_three').click(function () {
        window.clearTimeout(timer3);
        srcToGif2 = "http://demo.pink-squid.co.uk/christmas/s3.gif";
        srcTonormalGif2 = "http://demo.pink-squid.co.uk/christmas/s3_bg.gif";
        $('#divthree_three').attr('src', srcToGif2);
        timer3 = window.setTimeout(function () {
            $("#divthree_three").attr('src', srcTonormalGif2);
        }, 800);
    });

});

JSfiddle -- http://jsfiddle.net/squidraj/wTKpL/

【问题讨论】:

  • 究竟应该发生什么?
  • 有两张图片,一张是静态的,一张是动画的。点击黑色边框后,静态图片会变成动画,2秒后又会变回静态图片。跨度>
  • 两秒内 800 应该是 2000
  • 动画 gif 是否在 2 秒内完成循环?
  • 循环的总时间为 1 秒,即 1000 由 30 帧组成。

标签: jquery animation xhtml


【解决方案1】:

您必须致电timer3 而不仅仅是分配它。

是的,它是第一次工作。但是如果你继续点击 黑色边框框然后你会看到它不是结束或开始 第一帧。动画 gif 总共循环 1 秒。

更新

DEMO

$(document).ready(function () {
    var timer3;
    var clickCount = 0;
    $('#targetDIV_three').click(function () {
        window.clearTimeout(timer3);
        srcToGif2 = "http://demo.pink-squid.co.uk/christmas/s3.gif";
        srcTonormalGif2 = "http://demo.pink-squid.co.uk/christmas/s3_bg.gif";
        if (clickCount == 0) $('#divthree_three').attr('src', srcToGif2);
        clickCount++;
        timer3 = window.setTimeout(function () {
            $("#divthree_three").attr('src', srcTonormalGif2);
            clickCount = 0;
        }, 2000);
        timer3();
    });
});

【讨论】:

  • 是的,它是第一次工作。但是,如果您继续单击黑色边框框,那么您会看到它没有结束或从第一帧开始。动画 gif 总共循环 1 秒。
猜你喜欢
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 2019-07-15
  • 2022-12-06
相关资源
最近更新 更多