我正在尝试淡入一个内嵌背景图片的
元素。
我已经在页面加载时尝试过对图片进行操作,但是如何在
元素中实现这种效果呢?
我正在尝试淡入一个内嵌背景图片的
我已经在页面加载时尝试过对图片进行操作,但是如何在
$('selector').waitForImages({
finished:function(){$(this).slideUp();},
waitForAll:true
});
在评论中提到的问题的第二个答案,链接在这里,提供了一种解决方案,您可以将背景图像加载到图像标签中,然后当它准备好时将图像注入到div中。 这里是一个类似但有所不同的示例:
html:
<img src="http://www.modernmythmedia.com/wp-content/uploads/2013/04/Iron-Man-wallpaper-2-2032-e1367196003357.jpg" id="dummy" style="display:none;" alt="" />
<div id="pic" style="height:100px;width:100px;display:none;"></div>
jQuery:
$('#dummy').ready(function() {
$('#pic').css('background-image','url(http://www.modernmythmedia.com/wp-content/uploads/2013/04/Iron-Man-wallpaper-2-2032-e1367196003357.jpg)');
$('#pic').fadeIn(1000);
});
这里有实时预览: Fiddle.
希望这对你更加友好!
div#id
更新为 #id
。使用 id 时,可以使用 getElementById()
,当添加 div 时,还必须测试它是否是 div,因此不能再使用快速函数 :) - Martijn你能试一下吗?
HTML
<div id="mg" style="background-image:url(http://lorempixel.com/1920/1920/); display:none; width:1920px; height:1920px;"></div>
JS
var elem = $('#mg'),
bgImg = elem.css('background-image'),
imgUrl = bgImg.indexOf('"')!=-1 ?
bgImg.replace('url("','').replace('")','') :
bgImg.replace('url(','').replace(')',''),
nwImg = new Image();
nwImg.src = imgUrl;
nwImg.onload = function() {
elem.fadeIn('fast');
}
nwImg.onerror = function() {
alert('error');
}
JsFiddle
如果您不正确更改URL,则会看到错误消息(例如:background-image:url(hERRRttp://lorempixel.com/1920/1920/);)