Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir les dimensions naturelles d'une image en utilisant JavaScript ou jQuery ?

Jusqu'à présent, j'ai ce code :

var img = document.getElementById('draggable');
var width = img.clientWidth;
var height = img.clientHeight;

Cependant, cela me donne les attributs HTML - les styles CSS. Je souhaite obtenir les dimensions de la ressource image réelle du fichier.

J'en ai besoin car après avoir téléchargé l'image, sa largeur est définie sur 0px et je ne sais pas pourquoi ni où cela se produit. Pour éviter cela, je souhaite obtenir les dimensions réelles et les réinitialiser. Est-il possible?

EDIT : Même lorsque j'essaie d'obtenir la naturalWidth, le résultat est 0. J'ai ajouté une photo. Ce qui est étrange, c'est que cela ne se produit que lorsque je télécharge un nouveau fichier et qu'après une actualisation, cela fonctionne correctement.

http://oi39.tinypic.com/3582xq9.jpg

P粉916553895P粉916553895363 Il y a quelques jours744

répondre à tous(2)je répondrai

  • P粉239164234

    P粉2391642342023-10-22 13:03:59

    Demandez img.naturalHeightimg.naturalWidth de vous donner la largeur et la hauteur de l'image elle-même, pas l'élément DOM.

    répondre
    0
  • P粉148434742

    P粉1484347422023-10-22 09:42:28

    Vous pouvez utiliser naturalWidthnaturalHeight, ces propriétés contiennent la largeur et la hauteur réelles et non modifiées de l'image, mais vous devez attendre que l'image se charge pour les obtenir

    var img = document.getElementById('draggable');
    
    img.onload = function() {
        var width  = img.naturalWidth;
        var height = img.naturalHeight;
    }

    Cette fonctionnalité ne prend en charge que IE9 et supérieur, si vous devez prendre en charge les anciens navigateurs, vous pouvez créer une nouvelle image, définir sa source sur la même image, si la taille de l'image n'est pas modifiée, elle renverra la taille naturelle de l'image , car ce sera la taille par défaut lorsqu'aucune autre taille n'est donnée

    var img     = document.getElementById('draggable'),
        new_img = new Image();
    
    new_img.onload = function() {
        var width  = this.width,
            heigth = this.height;
    }
    
    new_img.src = img.src;

    FIDDLE

    répondre
    0
  • Annulerrépondre