2011-09-12 2 views
0

Salut tous im travaillant sur un petit script de redimensionnement d'image et cela fonctionne en IE et FF mais pas en chrome. Je dois rafraîchir la page pour que ça fonctionne. Je travaille dans un iframe. Voici mon codejquery image rezise ne fonctionne pas en chrome

function resize() { 
    var maxWidth = 200; 

    var width = $("#ImageMainPicture").width(); 
    //alert(width); 
    if (width > maxWidth) { 
     $("#ImageMainPicture").css("width", maxWidth); 
    } 

Ceci est appelé sur un jquery doc.ready.

Merci à tous ceux qui regardent cette

+0

Juste pour noter qu'il vous manque la fin '}' pour la fonction. Cela provoquerait une erreur ou des problèmes .. mais c'est peut-être juste une faute de frappe. –

+0

Envie de nous montrer du HTML? –

Répondre

1

$(document).ready() fonctionne avant que l'image est chargée. Lorsque vous avez besoin d'un support à charger, utilisez plutôt $(window).load(.

Vous pouvez également utiliser CSS!

#ImageMainPicture { 
    max-width: 200px; 
} 
+0

Vous mon ami êtes un héros. Parfois, je complique les choses quand une réponse facile est disponible –

0

Essayez ceci:

$("#ImageMainPicture").width(maxWidth); 
+0

merci pour votre réponse –

0

Essayez suivante si "#ImageMainPicture" est l'image élément parce que l'image est pas chargée lorsque .ready de $ (document)() , de sorte que vous supposez de mettre ce code dans $ (fenêtre) .load()

$(document).ready(function(){ 
    $(window).load(function(){ 
    var maxWidth = 200; 
    var width = $("#ImageMainPicture").outerWidth(); 
    if (width > maxWidth) { 
     $("#ImageMainPicture").css("width", maxWidth); 
    } 
    }); 
}); 
0
function resize() { 
    var $img = $("img#ImageMainPicture"); 

    $img.onload(function() { 
     var onloadInterval = setInterval(function() { 
      // Make sure the image is actually loaded in IE 
      if ($img[0].complete) { 
       clearInterval(onloadInterval); 
       $img.css("width", Math.min($img[0].width, 200)); 
      } 
     }, 100); 
    }); 
} 

L'appel de la fonction trouvera l'image avec un id de « ImageMainPicture » et définir le onload pour commencer un intervalle. L'intervalle vérifie la propriété complète sur l'objet image de sorte que nous sommes sûrs que l'image est chargée dans IE, puis définit la largeur de l'image à la valeur la plus petite. De cette façon, nous sommes absolument sûrs que l'image est là pour nous de manipuler sa largeur.

Questions connexes