經過在IE6中的一些測試後,我能夠用DD_belatedPNG和背景src重現您的問題。
這裏就是我發現。如果在調用DD_belatedPNG.fix('[selector]');
之前設置background-image
變量,那麼你得到期望的結果。如果你在一個click
事件之後將其設置,例如,你得到的"none"
值。
此外,DD_belatedPNG將圖像元素添加到包含背景圖像的頁面(類別爲DD_belatedPNG_sizeFinder
),因此您可以1)重複使用,2)複製或3)從該元素獲取src
屬性值。
這裏是我的測試代碼:
CSS:
#myElement
{
width: 515px;
height: 341px;
margin: 100px auto;
background: #f00 url('http://www.chismbrothers.com/images/woodfloors.png') no-repeat 0 0;
}
HTML:
<div id="myElement"></div>
<div id="test1"></div>
<div id="test2"></div>
<div id="test3"></div>
<div id="test4"></div>
的jQuery:
$(document).ready(function() {
// Works as expected
var bg = $('#myElement').css('background-image');
$('#test1').text("pre png fix: " + bg);
DD_belatedPNG.fix('#myElement');
$('#myElement').click(function() {
var bg = $(this).css('background-image');
var bgAll = $(this).css('background');
// This yields values of 'none' for bg and 'undefined' for bgAll
$('#test2').html("post png fix: " + bg + "<br />bg: " + bgAll);
// DD_belatedPNG creates an image element on the page with a class of
// 'DD_belatedPNG_sizeFinder' which can be used to get the image src
$('#test3').html('dd_belatedpng_sizeFinder: ' + $('.DD_belatedPNG_sizeFinder').attr("src"));
// Perhaps reapplying 'zoom' css will reapply the BG values?
$(this).css({ zoom: 0 }).css({ zoom: 1 });
// Set values again.
bg = $(this).css('background-image');
bgAll = $(this).css('background');
// No luck...same result as #test2
$('#test4').html("post png fix: " + bg + "<br />bg: " + bgAll);
});
});
你可以把你的代碼的jsfiddle? – Jaspero 2011-04-13 17:29:59