重新启动动画Gif

时间:2010-10-25 08:38:35

标签: javascript jquery animated-gif

我想把一个计时器放到我的画廊旋转脚本上。这个计时器是一个圆形动画GIF。我希望它在新图像加载时重新开始..

我原以为这会起作用,但显然不行。

// Loader needs to be a Global
loader = new Image();
loader.id = "loader_graphic";
loader.src = "images/loader.gif";
var $container = $('#slider .imgs').cycle({ 
 fx:     'scrollHorz', 
 speed: 1000,
 timeout: 5000,
 before : function() {
  resetLoader();
 }
});

function resetLoader() {
 $("#loader_graphic").remove();
 $("#loader").append(loader);
}

有没有人对修复此问题有任何想法。如果这不起作用,有谁知道如何实现这种效果?

3 个答案:

答案 0 :(得分:1)

您的javascript代码在重置时不会重新创建变量,或许将变量设置为新创建的dom元素会起作用吗?

// Loader needs to be a Global
var loader = newLoaderImage();

var $container = $('#slider .imgs').cycle({ 
  fx:     'scrollHorz', 
  speed: 1000,
  timeout: 5000,
  before : function() {
    resetLoader();
  }
});

function newLoaderImage() {
  i = new Image();
  i.id = "loader_graphic";
  i.src = "images/loader.gif";
  return i;
}

function resetLoader() {
  $("#loader_graphic").remove(); // or loader.remove();
  loader = newLoaderImage();
  $("#loader").append(loader);
}

答案 1 :(得分:0)

也许您可以使用JavaScript的解决方法,但重新启动是gif图像的一个选项,修改它会更简单(例如gimp)。

答案 2 :(得分:0)

一种方法可能是使用两个图像:一个动画gif,以及一个显示动画“停止”帧的静态gif。

将它们放在同一个地方。加载图像时,显示动画gif(可能使用visibility:visible;并使用visibility: hidden;隐藏已停止的动画。当您需要动画停止时,隐藏动画gif并显示已停止的图像