嗨我有一个带有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:偷偷摸摸的圣诞老人正在“下雪”,但跳跃的圣诞老人并没有“下雪”。为什么呢?
答案 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.js
和snowfall2.jquery.js
是同一文件的副本。
如果是这种情况,您仍然只是加载相同的文件两次。如果他们有不同的名字并不重要。
两个文件中的函数/变量名相同,因此只执行其中一个函数,而不是两者。这就是为什么只有一个图像“下雪”。至于修复它。我无法帮助你,因为我不知道jquery插件的内容。
如果文件足够小,您可以浏览它并重命名所有全局变量和函数,以便每个变量和函数有两个实例。