2010-10-14 25 views
1

j'ai une image avec classe mypiclargeur de réglage et la hauteur des images avec jquery dans les navigateurs WebKit

J'utilise l'événement de charge pour régler la largeur et la hauteur de cette image:

$(window).load(function() { 
    //Here I calculate final w and h 
    $('.mypic').css("width",w); 
    $('.mypic').css("height",h); 
    $('.mypic').height(h); 
    $('.mypic').width(w); 
}); 

En firefox Je n'ai aucun problème mais dans les navigateurs webkit la hauteur n'est pas définie et je ne sais pas pourquoi. C'est étrange puisque la largeur est réglée sans problèmes. Je ne sais pas ce qui se passe avec safari et chrome. Ai-je raté quelque chose? Quelqu'un pourrait-il m'aider?

Merci beaucoup.

+1

Comment allez-vous calculer 'w' &' h'? Veuillez indiquer le code que vous utilisez. –

Répondre

0

Essayez

$(function() { 
    //put your code here 
    $('.mypic').css({ 
    'width': w, 
    'height': h 
    }); 
}); 

Je fais quelques chose ici:

Encapsulation tout en fonction et en passant à l'objet jQuery ($) fera en sorte qu'il fonctionne lorsque le chargement du document (une autre utilisation pratique de $).

Vous pouvez effectuer un appel à CSS avec un objet JSON des attributs que vous souhaitez définir. Oh, et la définition de la hauteur CSS et l'appel .height (h) sont identiques à l'exception de leur valeur de retour (http://api.jquery.com/height/) et, comme vous n'utilisez pas la valeur de retour, vous n'avez pas besoin d'appeler les deux.

Quoi qu'il en soit, testé et cela fonctionne dans Chrome et Safari.

+0

Ok !! Je vois ce que vous dites, mais le morceau de code où j'écris "Ici je calcule w et h final" doit être exécuté une fois la page chargée, avec l'image, car j'obtiens la largeur et la hauteur réelles de l'image avant de le redimensionner en tenant compte de la largeur et la hauteur de la fenêtre du navigateur ... Je copie coller le code entier si cela aide. – user475849

+0

$ (fenêtre) .load (function() {// \t \t valeurs Calcul de la hauteur et la largeur de l'image centrale \t var totalWidth = $ (fenêtre) .Width(); \t var totalheight = $ (fenêtre) .height(); \t somme var = 510; // primaire = 248 + 212 + = primaryRight marge = 50 \t var maxWidth = totalWidth somme; \t var maxHeight = totalheight-30; \t var w = $ ('.slides2 img'). width(); \t var h = $ ('. slides2 img'). height(); \t if (w user475849

+0

J'ai ajouté un commentaire au code original, il suffit de mettre votre code là-bas. Tant que w et h sont définis lorsque vous atteignez le CSS, il va s'exécuter. – EMMERICH