簡體   English   中英

在添加到DOM后不久在Jquery中調整圖像大小?

[英]Resizing Images In Jquery Soon After Adding To The DOM?

我正在做這樣的事情:

maxDim = 100;
$('div.images').html('<img class="pull" src="'+imgs[img_i]+'" />');
$('img.pull').each(function(i){
  if( $(this).height() > $(this).width() ){
    var h = maxDim;
    var w = Math.ceil( $(this).width() / $(this).height() * maxDim);
  }
  else{
    var w = maxDim;
    var h = Math.ceil( $(this).height() / $(this).width() * maxDim);
  }
  $(this).css({height:h, width:w});
});

現在我很確定圖像大小調整部分很好......特別是因為它符合這個答案http://adeelejaz.com/blog/resize-images-on-fly-using-jquery/

有時它有效的問題,有時它沒有。 (它有時會顯示原始分辨率並在其他分辨率上重新調整)似乎時間是真正的問題。 也許在圖像實際進入DOM之前調用大小調整以便在之后再次選擇它? 你們有任何建議將不勝感激。

我猜有時候圖像沒有加載。 在這種情況下,原始大小仍然是未知的(0),並且由於除以零,計算導致NaN值。

當圖像的加載事件觸發時調整大小應該是一個選項。

您將需要特殊的圖像加載事件插件 否則,如果圖像已經在瀏覽器的緩存中,則不會觸發事件。 然后你可以這樣做:

$('img.pull').load(function(i){
    // ...
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM