Я ни в коем случае не кодер и не программист, но я пытался загрузить и отобразить некоторые GIF-файлы, чтобы они все анимировались с самого начала одновременно. Другими словами, мне нужно, чтобы они были синхронизированы.
Я много занимался поиском, и то, что я придумал, похоже, работает с 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;
}
Это в основном это и этот скрипт вместе взятые.
Вы можете посмотреть живой пример здесь: http://jsfiddle.net/AN9uB/
Некоторые возможные методы или потенциально полезные сообщения:
Однако, прочитав комментарии к этим ссылкам, я не совсем уверен, что они возможны.
Тестовые картинки, которые я использую, - это просто случайные изображения, которые я нашел, и небольшое предупреждение, некоторые изображения довольно большие, так как мне нужно было протестировать различные картинки в диапазоне размеров и продолжительности. Все циклы GIF, кроме первого изображения обратного отсчета, которое воспроизводится только один раз.
В некоторых случаях первое изображение обратного отсчета не воспроизводится вообще (оно застряло на 10) при просмотре страницы с Firefox 3.6.18, но в остальном все остальные картинки загружаются и отображаются одновременно.
Основная проблема в том, что я не могу придумать, как заставить это работать с Internet Explorer. Я подумал, возможно, для предварительной загрузки изображений, а затем обновить страницу с помощью JavaScript. Это уродливое решение, но я думаю, что оно сработает.
Flash - очевидный инструмент для подобных вещей, но мой друг, для которого я делаю это, использует только картинки.
Существует ли более элегантное решение, которое работает во всех основных браузерах? Также в идеале использовать только Javascript, а не JQuery.
Спасибо за любую помощь.