Я пытаюсь увязать изображения друг с другом. Я не уверен, что лучше предварительно загрузить изображение перед рукой или нет. Довольно много того, что происходит, что замирания удара полностью белый фон прежде, чем исчезнуть в следующем изображении, но я хочу, чтобы исчезнуть немедленно, вместо того, чтобы показывать белый фон - если это имеет смысл:Fading Image Slider
$(document).ready(function() {
var $next,
cycle;
var i = 0;
var imgArr = ['1.jpg', '2.jpg', '3.jpg'];
$activeLi = $("#slideshow li");
$activeLi.html('<img src="images/' + imgArr[i] + '" />');
cycle = setInterval(change_img, 1000);
function change_img(){
clearInterval(cycle);
$activeLi.find('img').fadeOut('slow', function(){
$activeLi.html('<img src="images/' + imgArr[i] + '" />').fadeIn('slow');
});
i = (i == (imgArr.length - 1)) ? 0 : ++i;
cycle = setInterval(change_img, 1000);
}
});
Также это лучше prealod мои изображения, прежде чем они исчезают?
Мое решение (Какой измученный я начал вслед ствие вопрос ...)
$(document).ready(function() {
var $next,
cycle;
var i = 0;
var durTimer = 2000;
var imgArr = ['1.jpg', '2.jpg', '3.jpg', '4.jpg'];
$activeLi = $("#slideshow li");
$activeLi.first().html('<img src="images/' + imgArr[0] + '" />');
cycle = setInterval(change_img, durTimer);
function change_img(){
clearInterval(cycle);
var nxtImg = (i == imgArr.length) ? 1 : i;
$activeLi.last().html('<img src="images/' + imgArr[nxtImg] + '" />');
$activeLi.find('img').animate({opacity:0}, {duration: durTimer});
i = (i == (imgArr.length - 1)) ? 0 : ++i;
$activeLi.first().html('<img src="images/' + imgArr[i] + '" />');
cycle = setInterval(change_img, durTimer);
}
});
Я хотел бы помочь, у вас есть jsfiddle? – Seano666
У меня нет изображений, которые я думаю, но суть в нем есть ... http://jsfiddle.net/De63Q/ – Derp
Лучше предварительно загружать (если у вас нет * крошечных * изображений), потому что тогда первое изображение может отображаться во время остальной загрузки, и в момент их использования запрос должен только подтвердить статус 304 (не изменен), что намного быстрее, чем загрузка. Это замедлит ваш fade/slideshow с первого запуска, но может означать сохранение нескольких секунд на картинку. Чтобы избежать пробелов, вы, вероятно, захотите пересечь 'fadeOut()' и 'fadeIn()' частью их времени выполнения. – Trojan