La propriété element.style vous permet de connaître uniquement les propriétés CSS qui ont été définies comme inline dans cet élément (de manière programmatique, ou définies dans l'attribut style de l'élément), vous devez obtenir le style calculé.
Il n'est pas si facile de le faire d'une manière inter-navigateurs, IE a sa propre manière, à travers la propriété element.currentStyle, et la manière standard DOM Level 2, implémentée par les autres navigateurs est à travers la méthode document.defaultView.getComputedStyle.
Les deux méthodes présentent des différences, par exemple, la propriété IE element.currentStyle s'attend à ce que vous accédiez aux noms de propriétés CSS composés de deux mots ou plus en majuscules (par exemple maxHeight, fontSize, backgroundColor, etc.), la méthode standard s'attend aux propriétés avec les mots séparés par des tirets (par exemple max-height, font-size, background-color, etc.). ......
function getStyle(el, styleProp) {
var value, defaultView = (el.ownerDocument || document).defaultView;
// W3C standard way:
if (defaultView && defaultView.getComputedStyle) {
// sanitize property name to css notation
// (hyphen separated words eg. font-Size)
styleProp = styleProp.replace(/([A-Z])/g, "-$1").toLowerCase();
return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
} else if (el.currentStyle) { // IE
// sanitize property name to camelCase
styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) {
return letter.toUpperCase();
});
value = el.currentStyle[styleProp];
// convert other units to pixels on IE
if (/^\d+(em|pt|%|ex)?$/i.test(value)) {
return (function(value) {
var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left;
el.runtimeStyle.left = el.currentStyle.left;
el.style.left = value || 0;
value = el.style.pixelLeft + "px";
el.style.left = oldLeft;
el.runtimeStyle.left = oldRsLeft;
return value;
})(value);
}
return value;
}
}
Référence principale stackoverflow
0 votes
Quelle "valeur de style spécifique" essayez-vous d'obtenir ?
0 votes
Les valeurs de positionnement actuelles : hauteur, largeur, haut, marge, etc.
2 votes
Votre question porte à croire que vous voulez quelque chose comme
var top = document.getElementById('image_1').style.top;
Vous pouvez le reformuler si ce n'est pas ce que vous voulez.0 votes
Merci à tous, les deux méthodes fonctionnent parfaitement, juste ce dont j'avais besoin. La méthode Jquery est un peu plus compacte, donc je vais probablement l'utiliser.