2010-10-25 152 views
1

我想把一个定时器放到我的画廊轮播脚本上。这个计时器是一个循环的动画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); 
} 

有没有人有任何解决这个问题的想法。如果这不起作用,有谁知道如何实现这种效果?

回答

0

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

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); 
} 
0

一种方法可能是使用两个图像:一个gif动画和静态GIF图片,展示了“停止”的动画框架。

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