J'essaie de changer la taille d'une image avec JavaScript. Le fichier jS est distinct de la page HTML.
Je veux définir la hauteur et la largeur d'une image dans le fichier JS. Des bonnes manières de faire ça?
Une fois que vous avez une référence à votre image, vous pouvez définir sa hauteur et sa largeur comme suit:
var yourImg = document.getElementById('yourImgId');
if(yourImg && yourImg.style) {
yourImg.style.height = '100px';
yourImg.style.width = '200px';
}
Dans le code HTML, cela ressemblerait à ceci:
<img src="src/to/your/img.jpg" id="yourImgId" alt="alt tags are key!"/>
Vous pouvez modifier les attributs largeur/hauteur réels comme suit:
var theImg = document.getElementById('theImgId');
theImg.height = 150;
theImg.width = 150;
Si vous souhaitez redimensionner une image après son chargement, vous pouvez attacher à l'événement onload
de la balise <img>
. Notez qu'il peut ne pas être pris en charge par tous les navigateurs ( La référence de Microsoft affirme qu'il fait partie de la spécification HTML 4.0, mais la spécification HTML 4.0 ne répertorie pas l'événement onload
pour <img>
).
Le code ci-dessous est testé et fonctionne sous: IE 6, 7 et 8, Firefox 2, 3 et 3.5, Opera 9 et 10, Safari 3 et 4 et Google Chrome:
<img src="yourImage.jpg" border="0" height="real_height" width="real_width"
onload="resizeImg(this, 200, 100);">
<script type="text/javascript">
function resizeImg(img, height, width) {
img.height = height;
img.width = width;
}
</script>
Il est facile de changer une image, mais comment la remettre à sa taille originale après l'avoir modifiée? Vous pouvez essayer ceci pour remettre toutes les images d’un document à leur taille originale:
var i, L = document.images.length; pour (i = 0; i <L; ++ i) { document.images [i] .style.height = 'auto'; // définition de la valeur CSS document.images [i] .style.width = 'auto'; // définition de la valeur CSS // document.images [i] .height = ''; (vous n'avez pas besoin de cela, définissez img.attribute) // document.images [i] .width = ''; (pas besoin de ça, ce serait mettre img.attribute) }
vous pouvez voir le résultat ici .__ Dans ce simple bloc de code, vous pouvez modifier la taille de votre image et l'agrandir lorsque la souris entre par dessus l'image laisser.
html:
<div>
<img onmouseover="fifo()" onmouseleave="fifo()" src="your_image"
width="10%" id="f" >
</div>
fichier js:
var b=0;
function fifo() {
if(b==0){
document.getElementById("f").width = "300";
b=1;
}
else
{
document.getElementById("f").width = "100";
b=0;
}
}
// This one has print statement so you can see the result at every stage if you would like. They are not needed
function crop(image, width, height)
{
image.width = width;
image.height = height;
//print ("in function", image, image.getWidth(), image.getHeight());
return image;
}
var image = new SimpleImage("name of your image here");
//print ("original", image, image.getWidth(), image.getHeight());
//crop(image,200,300);
print ("final", image, image.getWidth(), image.getHeight());