IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonction ratioImage (resize d'image propotionnel) incompatible IE9


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Octobre 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 9
    Par défaut Fonction ratioImage (resize d'image propotionnel) incompatible IE9
    Bonjour,

    La fonction ratioImage (ci-dessous) n'est pas compatible avec IE9 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="javascript">
    function ratioImage(urlImage,largeurImg){
    photo=new Image();
    photo.src=urlImage;
    var photoWidth=photo.width;
    var photoHeight=photo.height;
    var ratio=(Math.round((largeurImg/photoWidth)*100))/100;
    var newPhotoWidth=photoWidth*ratio;
    var newPhotoHeight=photoHeight*ratio;
    document.write("<img class=\"image_presentation\"  src=\"" + urlImage + "\" width=\"" + newPhotoWidth + "\"  height=\"" + newPhotoHeight+ "\" />");
    };
    </script>
    A appeler comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
    ratioImage("http://www.clickonmylinks.fr/wp-content/images/singe1.jpg",100)
    </script>
    Auriez-vous une solution de remplacement pour cette fonction ?

    D'avance merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    <script language="javascript">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    Utilise appendChild à la place de document.write
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function ratioImage(urlImage,largeurImg){
    	photo=new Image();
    	photo.src=urlImage;
    	var photoWidth=photo.width;
    	var photoHeight=photo.height;
    	var ratio=(Math.round((largeurImg/photoWidth)*100))/100;
    	photo.width = photoWidth*ratio;
    	photo.height=photoHeight*ratio;
    	document.body.appendChild(photo);
    };
    A+.
    A+.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 9
    Par défaut
    Bonjour,

    J'ai repris la fonction telle que vous l'aviez modifiée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    <script type="text/javascript">
    function ratioImage(urlImage,largeurImg){
    	photo=new Image();
    	photo.src=urlImage;
    	var photoWidth=photo.width;
    	var photoHeight=photo.height;
    	var ratio=(Math.round((largeurImg/photoWidth)*100))/100;
    	photo.width = photoWidth*ratio;
    	photo.height=photoHeight*ratio;
    	document.body.appendChild(photo);
    };
    </script>
    </head>
    <body>
    <script type="text/javascript">
    ratioImage("http://www.clickonmylinks.fr/wp-content/images/singe1.jpg",100)
    </script>
    </body>
    </html>
    Et cette fois-ci, ça ne fonctionne ni sous IE9 ni sur les autres

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <body onload="ratioImage("http://www.clickonmylinks.fr/wp-content/images/singe1.jpg",100)">
    </body>
    devyan

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    C'est que l'image n'est pas encore chargé, donc il ajoute l'image avec une hauteur et largeur de 0 px.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="ratioImage('http://www.clickonmylinks.fr/wp-content/images/singe1.jpg',100)">

    A+.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Non, c'est juste que quand tu ouvres un attribut avec le caractère ", le caractère " suivant fermera l'attribut !
    La coloration syntaxique montre clairement que tu as une imbrication de quotes problématique !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 9
    Par défaut
    ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <html>
    <head>
    <script type="text/javascript">
    function ratioImage(urlImage,largeurImg){
    	photo=new Image();
    	photo.src=urlImage;
    	var photoWidth=photo.width;
    	var photoHeight=photo.height;
    	var ratio=(Math.round((largeurImg/photoWidth)*100))/100;
    	photo.width = photoWidth*ratio;
    	photo.height=photoHeight*ratio;
    	document.body.appendChild(photo);
    };
    </script>
    </head>
    <body onload="ratioImage('http://www.clickonmylinks.fr/wp-content/images/singe1.jpg',100)">
    </body>
    </html>
    Donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img width="99" height="73" src="http://www.clickonmylinks.fr/wp-content/images/singe1.jpg">
    Par contre ce n'est pas tout à fait ce que je recherche parce que je voudrais pouvoir placer mon image n'importe où dans la page...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. resizer une image de fond en fonction de la resolution
    Par the_edge dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 02/11/2006, 14h47
  2. resizer une image de fond en fonction de la resolution
    Par kitten13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2006, 14h21
  3. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26
  4. Réponses: 12
    Dernier message: 22/02/2005, 17h45
  5. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo