使用 .load() 实现 JQuery / Javascript Image Gallery 的加载器图像;
我正在使用下面的代码作为图像库,并且希望在加载图像时在后台显示加载器 gif,然后在加载图像后将其删除。
最好的方法是什么?
注意:我之前附加了 .fadeIn()
和 .fadeOut()
,但运气不太好(看起来两者同时出现。
$('ul a').click(function(e) {
e.preventDefault();
var src = $(this).attr("href");
$('#main-img img').fadeOut(400,
function() {
$('<img/>').attr('src', src).load(function() {
$('#main-img img').attr('src', this.src).fadeIn(400);
})
})
});
I am using the code below for an image gallery and would like to show a loader gif in the background when images are loading and then remove it once the image is loaded.
What is the best way to do this?
Note: I have attached .fadeIn()
and .fadeOut()
before with not much luck(it seemed as both were appearing simultaneously.
$('ul a').click(function(e) {
e.preventDefault();
var src = $(this).attr("href");
$('#main-img img').fadeOut(400,
function() {
$('<img/>').attr('src', src).load(function() {
$('#main-img img').attr('src', this.src).fadeIn(400);
})
})
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我组装了一个似乎可以工作的 JSFiddle(红色是您的加载图像)。也许您在 DOM 完全加载之前注册了您的点击?我认为唯一不同的是我在 Document Ready 上注册了它。
http://jsfiddle.net/sSt3x/2/
注意,图像非常大(4000x4000 或所以)所以给它一点时间,第一张图像不会褪色,因此最初加载需要一些时间。根据您的行为进行必要的调整。
I put together a JSFiddle that seems to be working (red is your loading image). Perhaps you registered your click before the DOM was fully loaded? The only thing I see different is that I register it on Document Ready.
http://jsfiddle.net/sSt3x/2/
Note, the Images are VERY big (4000x4000 or so) so give it a moment and the first image is not faded, so it takes a moment to load initially. Adjust as necessary for your behavior.