我并不是程序员,但我一直在尝试加载和显示一些gif动画,使它们从开头同时播放。换句话说,我需要它们同步播放。
我已经进行了许多谷歌搜索,发现这似乎可以在Chrome / Safari和Firefox中正常工作,但通常情况下,Internet Explorer无法与之协作。
我的当前代码如下:
有时,在使用Firefox 3.6.18查看页面时,第一个倒计时图像根本不会播放(它卡在10上),但是其他所有gif都同时加载和显示。
主要问题是我无法想出一种方法使Internet Explorer正常工作。我认为可以通过javascript预加载图像,然后刷新页面来解决这个问题。这是一个丑陋的解决方案,但我认为它会起作用。
Flash是执行此类操作的明显工具,但我正在制作这个项目的朋友只使用gif。
是否有更优雅的解决方案适用于所有主要浏览器?而且最好仅使用Javascript,而不是JQuery。
感谢任何帮助。
我已经进行了许多谷歌搜索,发现这似乎可以在Chrome / Safari和Firefox中正常工作,但通常情况下,Internet Explorer无法与之协作。
我的当前代码如下:
var images = ["thephoto1", "thephoto2", "thephoto3", "thephoto4", "thephoto5"];
function initImages() {
for (var i = 0; i < images.length; i++) {
imageId = images[i];
image = document.getElementById(imageId);
image.style.visibility = "visible";
}
}
function preloadImages(urls) {
var img = new Array();
for (var i = 0; i < urls.length; i++) {
img[img.length] = new Image();
img[img.length - 1].src = urls[i];
}
}
window.onload = function() {
var img = new Array(
"http://desmond.imageshack.us/Himg391/scaled.php?server=391&filename=countdown.gif&res=medium",
"http://icanhascheezburger.files.wordpress.com/2010/11/funny-pictures-gif-cat-love.gif",
"http://i52.photobucket.com/albums/g9/cpchick/Random%20Gifs/therock.gif",
"http://www.mobileapples.com/Assets/Content/Screensavers/dc_1owy86mw.gif",
"http://www.pptbackgrounds.fsnet.co.uk/images/powerpoint-countdown-u1.GIF"
);
preloadImages(img);
initImages();
}
使用一些添加的 CSS:
.preload
{
visibility: hidden;
}
这基本上是this和this script的结合。
你可以在这里查看一个实际的例子: http://jsfiddle.net/AN9uB/
一些可能有用的方法或文章:
然而,从阅读这些链接的评论中,我并不确定它们是否可行。
我使用的测试gif只是我找到的随机图像,需要注意的是,由于我需要测试各种大小和持续时间的gif,因此一些图像相当大。除了第一个倒计时图像只播放一次外,所有gif都循环播放。有时,在使用Firefox 3.6.18查看页面时,第一个倒计时图像根本不会播放(它卡在10上),但是其他所有gif都同时加载和显示。
主要问题是我无法想出一种方法使Internet Explorer正常工作。我认为可以通过javascript预加载图像,然后刷新页面来解决这个问题。这是一个丑陋的解决方案,但我认为它会起作用。
Flash是执行此类操作的明显工具,但我正在制作这个项目的朋友只使用gif。
是否有更优雅的解决方案适用于所有主要浏览器?而且最好仅使用Javascript,而不是JQuery。
感谢任何帮助。
new Array
很丑,用[]
代替吧 :p - hugomg