Изменение атрибута src никогда не будет работать так, как вы хотите. Это потому, что браузеру требуется время для загрузки изображения. Даже он кэширован, он все еще слишком медленный для анимации. Я предлагаю объединить ваши изображения в спрайт и изменить background-position. Вы даже можете сделать это с помощью чистого перехода css.
Например ->http://jsfiddle.net/krasimir/uzZqg/
HTML
<div class="image"></div>
CSS
.image {
background: url('...');
width: 200px;
height: 200px;
transition: all 4000ms;
-webkit-transition: all 4000ms;
}
.image:hover {
background-position: -500px 0;
}
Вы можете даже использовать keyframes.
Здесь нет, как вы можете предварительно загрузить ваши изображения http://jsfiddle.net/krasimir/DfWJm/1/
HTML
<div id="preloader"></div>
JS
var images = [
'http://www.australia.com/contentimages/about-landscapes-nature.jpg',
'http://www.australia.com/contentimages/about-landscapes-nature.jpg',
'http://www.australia.com/contentimages/about-landscapes-nature.jpg',
'http://www.australia.com/contentimages/about-landscapes-nature.jpg',
'http://www.australia.com/contentimages/about-landscapes-nature.jpg',
'http://www.australia.com/contentimages/about-landscapes-nature.jpg'
];
var preloader = document.getElementById("preloader");
var preloadImages = function(callback) {
if(images.length == 0) {
callback();
return;
}
var image = images.shift();
var img = document.createElement("IMG");
img.setAttribute("src", image);
preloader.appendChild(img);
img.addEventListener("load", function() {
console.log("image loaded");
preloadImages(callback);
});
}
preloadImages(function() {
// your animation starts here
alert("Images loaded");
});
Конечно, вы можете скрыть #preloader DIV с дисплей: нет ;
Каждого изображения имеет 1024 * 768 и нет изображений около 800 его невозможно создать спрайт и выполнить анимацию на нем. – codebreaker
Можно ли показать некоторые изображения?Вам нужно оживить весь образ? – Krasimir
Мне нужно показать все, что ват делает это беседой ... которую я пытаюсь выполнить. – codebreaker