所以我正在制作宝丽来幻灯片效果,我想在Jquery中更改动画后的图像。我尝试添加延迟,但也许我做得不对?
这是我的代码,也许您可以帮助找到添加过渡图像的方法
Jquery的
$(function () { // DOCUMENT ready shorthand
function polariodSlideshow() {
$("#polaroid").animate({ opacity: 1, top: 80 }, 1500);
$("#polaroid").animate({ opacity: 0, top: 250 }, 1800);
$("#polaroid").animate({ opacity: 0, top: 0 }, 1900, polariodSlideshow);
}
polariodSlideshow();
});
的 HTML
<div id="polaroid" style="position:absolute ;width: 100%; height: -3000px; margin-top: 35px; opacity:0.0">
<br /> <br />
<div style="background-color: #EEEEEE; height:145%; width:40%; box-shadow: 0px 10px 5px #888888; display:inline-block; margin-left: 15%;">
<div id="slideshow">
<img id="centerIMG" src="images/cityscape.jpg" style=" margin-top:15px; width: 94%; margin-left:3%;" />
</div>
<div style=""> <br /> <br /> </div>
</div>
</div>
我想在第三个动画之后添加开关,因此在动画完成后更改图像后会发生回调函数。
答案 0 :(得分:1)
您只需使用第三个动画中的完成处理程序:
$(function () { // DOCUMENT ready shorthand
var imgs = ["src1.jpg", "src2.jpg", "src3.jpg", "src4.jpg"];
var cntr = 0;
function polariodSlideshow() {
$("#polaroid").animate({ opacity: 1, top: 80 }, 1500);
$("#polaroid").animate({ opacity: 0, top: 250 }, 1800);
$("#polaroid").animate({ opacity: 0, top: 0 }, 1900, function() {
// change the image here
var newImg = imgs[cntr % imgs.length];
++cntr;
// use newImg here
// then kick off the next iteration
polariodSlideshow();
});
}
polariodSlideshow();
});
如果新图像.src尚未缓存,那么您可能还需要添加等待加载或更好的代码,确保它已经过预处理,这不是一个问题。