我試圖根據乘數來改變圖像大小。該函數在onmouseover事件中被調用,並在onmouseout中恢復以前的imagen大小。函數內部的變量值很差 - Javascript
function cambiar_img_ampliando(imagen, inout, porcentaje)
{
//Description of arguments:
//(image element, onmouseover or onmouseout, % of size increase)
var multiplicador = porcentaje/100; //Multiplier
var alto = imagen.offsetHeight;
var ancho = imagen.offsetWidth;
if (inout==1) //onmouseover
{
var nuevo_alto = alto+(alto*multiplicador);
var nuevo_ancho = ancho+(ancho*multiplicador);
//Change the image size
imagen.style.height = nuevo_alto+"px";
imagen.style.width = nuevo_ancho+"px";
//Adjust image position > To keep it center
var top = (alto*multiplicador)/2;
var left = (ancho*multiplicador)/2;
imagen.style.top="-"+top+"px";
imagen.style.left="-"+left+"px";
}
if (inout==0) //onmouseout
{
//Recover the original image size
imagen.style.height = alto+"px";
imagen.style.width = ancho+"px";
//Replace image
imagen.style.top="0px";
imagen.style.left="0px";
}
}
的問題發生在inout==0
部分(當的onmouseout與inout
參數0
值調用該函數): alto
和ancho
變量不正確地恢復imagen畫質的原始大小值。它似乎得到變量nuevo_alto
和nuevo_ancho
的值。這很奇怪......因爲如果我手動設置了ancho
和「alto」的值(對於某個像素),它運行正常,我一直在檢查所有變量的範圍,此時我不明白爲什麼這條線:imagen.style.height = alto+"px"
不恢復imagen畫質的原始高度值...
是否有可能行: imagen.style.height = nuevo_alto+"px";
改變"alto"
變量的值?
你是我的英雄!我沒有意識到,這些改變也會改變變量>。
ether82