СМОТРИ ДЕМО ЗДЕСЬ
Я немного изменил ваш HTML:
<div id="fadeGallery">
<div id="gallery">
<img src="img1.jpg" />
<img src="img2.jpg" />
<img src="img3.jpg" />
</div>
<div id="nav"></div>
</div>
CSS, который я использовал для демонстрации:
#fadeGallery{
position:relative;
background:#111;
width:300px;
height:250px;
margin:0 auto;
}
#gallery{
width:300px;
position:relative;
margin:10px auto;
background:#000;
height:168px;
padding:7px 0;
}
#gallery img{
position:absolute;
top:7px;
}
#nav{
position:absolute;
height:27px;
width:300px;
bottom:12px;
text-align:center;
}
img.thumb{
position:relative;
width:48px;
margin:2px;
cursor:pointer;
}
img.active{
border:2px solid #fff;
margin:0px;
}
... и самое интересное:
//#### GALLERY SETUP #########
var fade = 400;
var delay = 2500;
//############################
var timeOut, i = 0, isStopped = false, img = $('#gallery img'), imgN = img.length;
img.clone().appendTo('#nav');
$('#nav img').addClass('thumb').eq(0).addClass('active');
$('#gallery img:gt(0)').hide();
function auto() {
if (imgN>1){ // if there's more that one
if(isStopped){return;}
clearTimeout(timeOut);
timeOut = setTimeout(function() {
i = ++i % imgN;
img.fadeOut(fade).eq(i).fadeIn(fade,function(){ auto(); });
$('#nav img').eq(i).addClass('active').siblings('img').removeClass('active');
},delay);
}
}
auto();
$('#nav img.thumb').click(function(){
var ind = $(this).prevAll().length;
i = ind;
$(this).addClass('active').siblings().removeClass('active');
img.fadeOut(fade);
img.eq(ind).fadeIn(fade);
});
$('#gallery').parent().bind('mouseenter mouseleave', function(ev) {
ev.type === 'mouseenter' ? ( isStopped=true, clearTimeout(timeOut) ) : ( isStopped=false, auto() );
});
У вас есть затухание, которое вы хотели, и, возможно, вам понадобится «остановить» при наведении.
Если у вас есть вопросы, я с удовольствием объясню часть кода, который я использовал.
Тем временем вы можете 'Google' для:
- jQuery .clone () / .appendTo ()
- jQuery .hide () / .fadeIn () / .fadeOut ()
- jQuery .addClass () / .removeClass ()
- jQuery .siblings () / .prevAll () /
- jQuery .bind ()
- JS троичные операторы
- setTimeout / clearTimeout с использованием jQuery
- по модулю (%)