Я считаю, что ваше желание немного сложнее, чем другой опубликованный ответ - вы хотите, чтобы изображения плавно исчезали. Этот код создает div внутри div, а затем при наведении мыши показывает внутренний (и, следовательно, самый верхний) div, меняет фон нижнего (самого внешнего) div на следующий в цикле, а затем затухает верхнее изображение. , Он также имеет механизм выборочной блокировки, поэтому, если пользователь сходит с ума от мыши, изображение не будет мерцать мерзким образом. Я надеюсь, что это поможет, и если вы хотите более глубокое объяснение функциональности кода (вы должны быть в состоянии прочитать его, в основном), напишите об этом в комментариях.
Этот код состоит из трех частей.
Javascript:
var pos = 0, lockOut = 0;
var fade = 600; // change this if you like (in MS)
// fix these div names
var top = '#my-transitional-div', bottom = '#my-permanent-div';
var images = [ // fix these paths
'http://example.com/1.png',
'http://example.com/2.png',
'http://example.com/3.png',
'http://example.com/4.png',
'http://example.com/5.png'
];
$(document).ready(function() {
$(top).hide();
$(bottom).css("background-image",'url(' + images[pos] + ')');
$(bottom).live("mouseover",changeOut);
pos = images.length;
changeOut();
});
function changeOut() {
if (++lockOut > 1) {
lockOut--;
return;
}
$(top).css("background-image",'url('+images[pos-1]+')').show().fadeOut(fade);
if (pos >= images.length) pos = 0;
$(bottom).css("background-image",'url('+images[pos++]+')');
setTimeout(function(){lockOut--;},fade-10);
}
CSS:
/* fix these div names (also height, width) */
#my-transitional-div {
width: 500px;
height: 250px;
margin: 0;
padding: 0;
position: absolute;
left: 0;
top: 0;
}
#my-permanent-div {
position: relative;
width: 500px;
height: 250px;
margin: 0;
padding: 0;
}
HTML:
<div id="my-permanent-div">
<!-- notice that the "transitional" div (var=top) is INSIDE the other -->
<div id="my-transitional-div"></div>
</div>