我正在尝试将几个图像加载到一个名为“images”的div中,当它们完成加载时我想让它滑动div“图像”,这将显示刚刚加载到其中的实际图像,而我在找出如何实现这一目标时遇到一些麻烦。
这是我到目前为止所做的,这不太对:
$('#button').click(function() {
var image=$('#images');
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/home.jpg"
}).appendTo("#images");
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/inventory.jpg"
}).appendTo("#images");
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/services.jpg"
}).appendTo("#images");
if (image.get(0).complete) { image.slideDown(300); }
});
答案 0 :(得分:1)
有一个很好的jQuery插件可以在加载元素中的所有图像后触发事件: http://desandro.github.com/imagesloaded/
在小提琴中看到这个例子: http://jsfiddle.net/TFVc9/2/
$('#button').click(function() {
var image=$('#images');
//...
image.imagesLoaded( function() {image.slideDown(300)} );
});
答案 1 :(得分:1)
只是听一下图像load
事件。在事件处理程序中计算图像,如果加载的图像数与所请求图像的数量相匹配,则启动该节目。
var imgCount = 0;
var image=$('#images');
$('#button').click(function() {
console.log("Loading...");
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/home.jpg"
}).appendTo("#images").load(onImage);
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/inventory.jpg"
}).appendTo("#images").load(onImage);
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/services.jpg"
}).appendTo("#images").load(onImage);
});
function onImage(e)
{
console.log("Image loaded");
imgCount++;
if (imgCount == image.children().length)
{
image.slideDown(3000);
}
}
.load(function name)
表示我们附加了一个事件监听器,它将监听load
事件,一旦发生,该函数将被执行。
onLoad(e){}
表示名为onLoad
的函数接受一个参数 - 该参数从事件侦听器传递,它是一个event
对象。
在函数内部,e
可用于检测触发事件的对象,以便更多地约会某个日期......
答案 2 :(得分:0)
尝试以下代码:
<script>
$(document).ready(function () {
$('#button').click(function() {
$('#theDiv').prepend('<img id="theImg" src="http://www.klossal.com/images/klossviolins/home.jpg" />')
$('#theDiv').prepend('<img id="theImg" src="http://www.klossal.com/images/klossviolins/inventory.jpg" />')
$('#theDiv').prepend('<img id="theImg" src="http://www.klossal.com/images/klossviolins/services.jpg" />')
$('#theDiv').prepend('<img id="theImg" src="http://www.klossal.com/images/klossviolins/services.jpg" />')
$('#theDiv').hide();
$('#theDiv').slideDown('slow', function() {
// Animation complete.
});
});
});
</script>