Вот код, который работает с использованием переходов CSS3:
$(document).ready(function() {
function play() {
setInterval(function(){
var next = $(".ad .active").removeClass("active").next("img");
if (!next.length) {
next = $(".ad img:first");
}
next.addClass("active");
}, 3000);
}
play();
});
И рабочий jsFiddle: http://jsfiddle.net/jfriend00/8frVL/
Примечание: это только добавляет / удаляет класс.Для этого не нужно менять положение изображений в DOM (как вы это делали).
Используя этот CSS:
.ad {
height:300px;
width:250px;
margin:0 1em 1em 0;
position:relative;
}
.ad img {
position: absolute;
transition:opacity 1s linear;
-moz-transition:opacity 1s linear;
-webkit-transition:opacity 1s linear;
}
.ad img {
opacity: 0;
}
.ad img.active{
opacity: 1;
}