Il y a cette image sur une page que je suis en train de coder et qui devrait être redimensionnée et centrée horizontalement et verticalement en fonction de certaines variables. Je ne peux pas utiliser la feuille CSS pour cela, car les variables width et height sont dynamiques. Par conséquent, je souhaite que javascript ajoute deux arguments supplémentaires (en haut et à gauche) au style de cette image spécifique.Ajout de CSS supplémentaire avec javascript
J'ai essayé ce (qui m'a semblé tout à fait raisonnable)
function getStyleSheet() {
for(var i=0; i<document.styleSheets.length; i++) {
var sheet = document.styleSheets[i];
if(sheet.title == 'StyleSheet') {
return sheet;}
}
}
var rule_sheet = getStyleSheet();
function changeText() {
rule_sheet.insertRule(".className { top:" (-(.5*newHeight))+ "; left:" +(-(.5*newWidth))+ ";}");
showRules();
}
J'ai aussi essayé d'ajouter un style en ligne à l'image comme ceci: (dans la fonction où l'image a été redimensionnée)
$(this).style.top= (-(.5*newHeight));
$(this).style.left= (-(.5*newWidth));
Aucune des deux solutions n'a fonctionné, alors que pour moi les deux méthodes semblaient plausibles. Qu'est-ce que je rate?
EDIT: Je réalisé que je n'ai pas ajouté le suffixe « px » à cela, mais après cela, il ne fonctionne toujours pas :(
EDIT II: Après conseils NickFitz, je réécrit le dernier bit de code à ceci:
$(".className").each(function() {
$(this).css("top", (-(.5*newHeight)), 2);
$(this).css("left", (-(.5*newWidth)), 2);
});
cela ne fait changer la façon dont il ne regarde pas la façon dont je le veux, mais au moins je suis un peu
Et le code pour centrer l'image était mal aussi. {à gauche: 50%; haut: .5 * hauteur; margin-left: .5 * width;} est la bonne façon. Mais peu importe. – Kablam