我有一个包含10个图像的页面,并且我希望在图像下载完毕后将它们逐个淡入淡出。我如何检测图像已加载并准备好显示?我应该循环通过加载的图像fadeIn和一旦褪色在等待下一个加载?jquery:在图像后淡入图像
回答
只需在图像上使用load()事件即可。例如。
$('#some_image').hide()
.load(function() {
$(this).fadeIn();
})
.attr('src', 'images/headshot.jpg')
您可以预先加载图像(See here),然后在循环中依次调用淡入淡出和淡出方法。
得到了预加载部分工作,但我不想淡入图像,直到我知道它已被预装? – monkeylee 2009-08-18 15:22:36
您可以使用刚加载的图像对象的onLoad事件,如下所示:objImage.onLoad = imagesLoaded();.在加载图像后调用imagesLoaded函数。把你的淡入淡出的东西放在那里。 – maxpower47 2009-08-18 16:00:15
(基于克里斯埃里克森的回答)
您可以通过将事件的图像将它添加到DOM(未经证实之前,以避免潜在的竞争条件,但我喜欢玩安全)。这种方法也适用于彼此之间的图像淡化。
这是我用于图库控件的地方,我在另一图像上添加图像并淡入其中 - 然后删除底部图像(如果我已经添加了2张图像)。
var url = .....;
var container = $('#images_container');
$("<img />").hide().load(function() {
$(this).fadeIn();
}).attr('src', url).appendTo($(container));
if ($(container).children().length > 2) {
$(":nth-child(1)", container).remove();
}
这里的HTML:
<div id="images_container"></div>
的CSS必须设置这样或图像将堆栈上而不是在彼此的顶部。
#images_container {
position: relative;
}
#images_container {
position: absolute;
}
- 1. jQuery animate - 图像淡出后淡入?
- 2. jquery淡入,图像在图像
- 3. jquery淡入/淡出图像
- 4. jQuery淡出当前图像,然后淡入点击的图像
- 5. GIF,然后图像淡入
- 6. jQuery图像淡入序列?
- 7. jQuery的图像淡入
- 8. 如何淡入jQuery图像
- 9. jQuery背景图像淡入
- 10. jquery图像逐个淡入?
- 11. jQuery随机淡入图像
- 12. 淡入图像,淡出出图像
- 13. 更换源后淡出/淡入图像
- 14. jquery图像淡入和淡出同时?
- 15. 同时jQuery淡入淡出图像
- 16. 淡入/淡出多个图像JQuery PHP
- 17. 淡入淡出所有图像 - jQuery Slider
- 18. 背景图像淡入淡出与jQuery
- 19. 淡入/淡出多幅图像与jQuery
- 20. 简单的jQuery淡入淡出图像
- 21. jQuery淡入淡出图像循环
- 22. JQuery图像淡入淡出速度
- 23. jQuery淡入淡出图像,然后加载淡出
- 24. JQuery:如何在淡入淡出后更改图像?
- 25. jQuery淡出图像
- 26. Javascript淡入淡出图像
- 27. 淡入淡出的图像
- 28. 图像淡入淡出
- 29. android图像淡入淡出
- 30. Javascript - 淡入淡出图像?
那么只有在图像完全下载后才能执行加载功能? – monkeylee 2009-08-18 15:27:02
是的,它发生在图像加载时。 – 2009-08-18 16:54:51
你可以在这里看到它的行动:http://jsbin.com/ejesu/edit(只要jsbin保留片段)。 – 2009-08-18 17:06:36