[英]How to get the height of a hidden image?
當div被隱藏( display:none
)時,瀏覽器將不會加載其中的圖像。 有沒有辦法告訴瀏覽器加載圖像? 我需要圖像的高度和寬度來進行一些預處理。
注意:由於其他一些代碼,我無法使div可見。 在這里查看示例 。 此外,“懶惰負載”示例對我不起作用。
使div可見,但將其放在頁面外的position: absolute;
。
如果您的“其他代碼”也不允許您這樣做,請創建一個具有相同URL的新圖像節點,將其放置在頁面外部,等待它加載,讀取其高度並銷毀。
我已經添加了一些預加載,將它包裝到一個函數中,這就是訣竅:
function getImageDimension(el, onReady) {
var src = typeof el.attr === 'function' ? el.attr('src') : el.src !== undefined ? el.src : el;
var image = new Image();
image.onload = function(){
if(typeof(onReady) == 'function') {
onReady({
width: image.width,
height: image.height
});
}
};
image.src = src;
}
可以用作:
getImageDimension($('#img1'), function(d){ alert(d.height); });
var url = 'http://urology.jhu.edu/patrickwalsh/photo1.jpg';
getImageDimension(url, function(d){ alert(d.height); });
看看這個帖子。
我相信這只適用於父級為“display:none”的項目
請參閱有關此問題的文章http://dev.jquery.com/ticket/125
此外,請參閱此示例(另存為.html文件)
<html>
<head>
<title>Example</title>
<script type="text/javascript">
$(document).ready(function(){
alert($("#target").height());
});
</script>
</head>
<body>
<div id="parent" style="display:none;">
<div id="target" style="height:100px;display:block;">
a
</div>
</div>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.