Вы должны добавить анимационный код для затухания активного изображения, чтобы переход был более плавным.Если вы запустите все анимации одновременно, вам придется настроить время, чтобы все было гладко;Я не уверен, почему это так, но именно поэтому я изменил продолжительность до 2000 миллисекунд.
Я протестировал приведенный ниже код, и похоже, что он работает плавно, как это.Однако я хочу посоветовать вам рефакторинг вашего кода, чтобы у вас осталась только 1 анимационная функция.Вы также должны изменить размер изображений, которые вы используете для слайд-шоу (5 мегабайт для изображения - СЕРЬЕЗНОЕ излишество).
function slideSwitch() {
var $active = $('#slideshow IMG.active');
if ( $active.length == 0 ) $active = $('#slideshow IMG:last');
// use this to pull the images in the order they appear in the markup
var $next = $active.next().length ? $active.next(): $('#slideshow IMG:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 2000, function() {
$active.removeClass('active last-active');
});
$active.animate({opacity: 0}, 2000);
}
Если вы действительно хотите скрыть изображение только после завершения анимации шоу, вы можете использоватьприведенный ниже код, но на самом деле это выглядит не очень гладко, конечно, по вашему выбору.
function slideSwitch() {
var $active = $('#slideshow IMG.active');
if ( $active.length == 0 ) $active = $('#slideshow IMG:last');
// use this to pull the images in the order they appear in the markup
var $next = $active.next().length ? $active.next(): $('#slideshow IMG:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 2000, function() {
$active.removeClass('active last-active');
$active.css({opacity: 0.0});
});
}