Jquery gif雪与2 GIF动画

时间:2013-12-05 16:15:16

标签: jquery animation gif

嗨我有一个带有2种不同GIF的雪gif动画:

http://archibaldbutler.com/projects/stack/

一个正在下雪而另一个正在下雪,我希望他们两个在目前的网页上“下雪”,而不是仅仅一个。

我所遵循的教程仅仅是为了拥有一个GIF动画。所以我复制了降雪剧本并命名为snowfall2.jquery.js

    <script src='snowfall.jquery.js'></script>
<script src='snowfall2.jquery.js'></script>

我做了一次搜索,并用降雪2替换了降雪2,用“降雪2”取代了“降雪”。

在我的index.html的标题中,我添加了对snowfall2.jquery.js的调用,该调用调用了gif图像:

<script type='text/javascript'>     
    $(document).ready(function(){
        $('.collectonme').hide();
        //Start the snow default options you can also make it snow in certain elements, etc.
        $(document).snowfall({image :"images/santa-sneaking-smiley-emoticon2.gif", minSize: 40, maxSize:100});
  $(document).snowfall2({image :"images/santa-sneaking-smiley-emoticon22.gif", minSize: 40, maxSize:100});



    });
     </script>

我的问题是:一个GIF:偷偷摸摸的圣诞老人正在“下雪”,但跳跃的圣诞老人并没有“下雪”。为什么呢?

2 个答案:

答案 0 :(得分:2)

Archie,Smeegs的回答会告诉你为什么它不会让两个图像都下雪。我搞砸了插件并设置它(快速黑客)接受一系列图像。只会使用前两个图像,但这应该适用于您的情况。

首先,使用以下行替换原始脚本中的第136,137和138行:

if (options.images) {
    flakeMarkup = $(document.createElement("img"));
    flakeMarkup[0].src = this.id % 2 == 0 ? options.images[0] : options.images[1];

然后,删除第二个脚本块并再次调用页面中的脚本并更新document.ready()以创建一个数组,以传递并填充两个图像(当然使用您的图像名称):< / p>

var flakeImages = [];
flakeImages[0] = "snowflake.png";
flakeImages[1] = "gemstone.png";

最后,将你对降雪的号召改为:

$(document).snowfall({ images: flakeImages , minSize: 40, maxSize: 100 });

让我知道它是怎么回事。

答案 1 :(得分:1)

我假设snowfall.jquery.jssnowfall2.jquery.js是同一文件的副本。

如果是这种情况,您仍然只是加载相同的文件两次。如果他们有不同的名字并不重要。

两个文件中的函数/变量名相同,因此只执行其中一个函数,而不是两者。这就是为什么只有一个图像“下雪”。至于修复它。我无法帮助你,因为我不知道jquery插件的内容。

如果文件足够小,您可以浏览它并重命名所有全局变量和函数,以便每个变量和函数有两个实例。