javascript更改元素大小不改变';我不能正常工作

javascript更改元素大小不改变';我不能正常工作,javascript,Javascript,我正在尝试创建一个javascript函数(onmouseover),该函数会将元素的高度和宽度增加10px(使用setTimeout将元素的高度和宽度增加1px 10倍),但我的元素的高度和宽度分别增加了200px和100px。那没有任何意义。关于它如何无法正常工作的示例:www.modwebsolutions.com/test3/My源代码: var el; function changeSize(id) { var elem=document.getElementById(id);

我正在尝试创建一个javascript函数(onmouseover),该函数会将元素的高度和宽度增加10px(使用setTimeout将元素的高度和宽度增加1px 10倍),但我的元素的高度和宽度分别增加了200px和100px。那没有任何意义。关于它如何无法正常工作的示例:www.modwebsolutions.com/test3/My源代码:

var el;

function changeSize(id) {

var elem=document.getElementById(id);

el=elem;

for (var i=0; i<10; i++) {
    setTimeout(changeS,100);
}

}

function changeS() {
var tempHeight=el.offsetHeight;
var tempWidth=el.offsetWidth;
el.style.height=tempHeight + 1 +"px";
el.style.width=tempWidth + 1 + "px";
}


//    Update: tried
    el.style.height=(parseInt(tempHeight) + 1) +"px";
    el.style.width=(parseInt(tempWidth) + 1) + "px";
var-el;
函数更改大小(id){
var elem=document.getElementById(id);
el=elem;

对于(var i=0;i可能是因为tempWidth和tempHeight被表示为字符串,您应该尝试

el.style.height= (parseInt(tempHeight) + 1) +"px";
el.style.width= (parseInt(tempWidth) + 1) + "px";

将功能更改为:-

function changeS() {
var tempHeight=el.offsetHeight;
var tempWidth=el.offsetWidth;
el.style.height = (parseInt(tempHeight) + 1) +"px";
el.style.width = (parseInt(tempWidth) + 1) + "px";
}
希望这有帮助,因为我感觉offsetHeight将返回
*px
,这将导致样式高度为
*px
,无法正确渲染

来自类似问题的欢呼声, 而不是 温度高度+“px”; 尝试 温度高度+“px”


虽然它没有意义,也没有文档记录,但我发现它可以在IE10以及Firefox、Chrome和Opera中使用style.height属性更正到适当的高度。IE早期版本未经测试。这一定是数据类型问题。

p.s.offsetHeight和offsetWidth返回整数。@Caballero:检查函数中的值。是否确定e值增加了这么多值?不,值增加太多,这就是造成整个问题的原因。我添加了“警报”每次迭代后,宽度值总是增加10px而不是1px。高度值增加5px而不是1px。这没有任何意义,代码是超原始的。@Calallera:初始值是什么?初始值是宽度:90px高度:29px整个要点是它应该有动画效果,无论如何,我似乎解决了问题m你自己,读更新。