我有以下JavaScript来制作幻灯片:
window.addEventListener('load', main, false);
var number = 1;
var interval;
function main() {
interval = setInterval(changeDia, 3000);
}
function changeDia() {
var img = document.getElementById("dia");
var currentDia = img.getAttribute("src");
if(currentDia == "style/slideshow/6.jpg") {
number = 1;
} else {
number = number + 1;
}
img.setAttribute("src", "style/slideshow/" + number + ".jpg");
}
此代码工作正常,但转换非常粗鲁。我希望当前的图像淡出,下一个图像淡入,以便顺利过渡。什么是最简单的方法? Javascript和jQuery对我都有好处。
提前致谢,
塞德里克
答案 0 :(得分:1)
你可以在没有插件的情况下使用jQuery轻松完成:
var i = 0, //initial index
duration = 1000, //animation duration
interval = 3000; //interval
function switchImg() {
$("<img>") //create new <img>
.attr("src", "style/slideshow/" + (i<6?++i:(i=1,i)) + ".jpg") //set attr.
.css("opacity", 0) //hide it
.prependTo("#wrap") //add it to DOM
.animate({ //fade in
opacity: 1
}, {
duration: duration
})
.next() //select current img
.animate({ //fade out
opacity: 0
}, {
duration: duration
})
.promise()
.done(function () { //remove old img
$(this).remove(); // when done
setTimeout(switchImg, interval); //repeat
});
}
switchImg(); //start up
http://jsfiddle.net/DerekL/vzhHZ/
不要忘记将图片的position
属性设置为absolute
,否则无效。