Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有同步gif文件的方法?_Javascript_Jquery_Html_Gif - Fatal编程技术网

Javascript 有没有同步gif文件的方法?

Javascript 有没有同步gif文件的方法?,javascript,jquery,html,gif,Javascript,Jquery,Html,Gif,我有一个页面上有7个gif文件 有没有一种方法可以同步它们,让它们同时开始播放 我正在考虑预加载它们,但是如果一个比另一个加载时间长,它们可能不会开始同步。尝试在页面头部预加载它们,并在正文加载时运行它们。制作一个函数,function gifs{}也许可以这样运行:根据内容类型,考虑用png序列(sprite sheet)甚至jpg序列替换GIF 创建所需动画大小的div,将精灵表设置为隐藏溢出的背景图像 在javascript中创建一个计时器,该计时器在每次勾选的同时更新所有动画(背景图像位

我有一个页面上有7个gif文件

有没有一种方法可以同步它们,让它们同时开始播放


我正在考虑预加载它们,但是如果一个比另一个加载时间长,它们可能不会开始同步。

尝试在页面头部预加载它们,并在正文加载时运行它们。制作一个函数,
function gifs{}
也许可以这样运行:

根据内容类型,考虑用png序列(sprite sheet)甚至jpg序列替换GIF

创建所需动画大小的div,将精灵表设置为隐藏溢出的背景图像

在javascript中创建一个计时器,该计时器在每次勾选的同时更新所有动画(背景图像位置),从而可以非常精确地控制帧速率


我以前使用过这种技术,如果你的雪碧床单对加载时间没有太大的影响,那么效果会很好。

正如@Archer在上面指出的,一种方法是预加载它们,然后重置src。使用jquery可以执行以下操作:

$(window).load(function() {
    $('.preload').attr('src', function(i,a){
        $(this).attr('src','').removeClass('preload').attr('src',a);
    });
});

在上查看。

您无法控制使用javascript(或任何javascript库)启动gif文件。您所能做的最好的方法是预加载它们,然后在加载它们之后同时为它们重置src。这会让他们重新开始。我想这就是阿切尔的答案。“重置src”是什么意思?有两种方法。要么让页面上的图像全部加载,要么让页面上的图像隐藏并加载到内存中,使用纯脚本中的图像对象。加载完所有图像后,只需为页面中的每个图像设置src。通过重置src,我的意思只是将src属性设置为它已经存在的值-
$(“img”).each(function(){$(this)[0].src=$(this)[0].src;})