Il s'agit d'une parade. Peut-être que vous avez d'autre solutions, mais j'ai déjà fouillé pas mal sur le net.
Lorsque vous voulez convertir des % en px en javascript, la solution évidente serait de déterminer la taille de la partie affichable de la fenêtre et de faire un rapport. Mais voilà, la taille de la partie affichable fait partie des valeurs qui est difficilement accessible en JS. Plusieurs navigateurs ont un comportement différent dans ce domaine >.< . J'ai vu ici et là des fonctions JS qui par le biais de tests multiples arrivent à trouver une valeur, mais franchement rien de 100% sûr. Je vais vous avouer que ma méthode n'est p-e pas 100% sûr non-plus; Il faudrait tester en profondeur. Mais j'ai des bonnes raisons de croire qu'elle donne un résultat équivalent au autres valeurs en "%" du css ^^.
La solution est tout bête:
Quelque part dans l'html: (Mais obligatoirement à même le body)
<img id="echelle" style="width:1%;height:1%;position:absolute;top:0px;left:0px;Visibility: Hidden;" src="">
Non, vous ne rêvez pas : une image sans source et invisible en plus !
Proportion px/% en X dans le JS:
parseInt(document.getElementById("echelle").offsetWidth)
Proportion px/% en Y dans le JS:
parseInt(document.getElementById("echelle").offsetHeight)
NB: vous optenez ainsi la valeur en px de 1%, il suffit de multiplier par le nombre de % escompté.
J'espère être utile a quelqu'un. J'avoue que la solution est simple, mais je ne l'ai jamais vu ailleurs, alors je post
.
Partager