我先把功能实现了:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
window.onload = function () {
var intelId;
var addDiv = document.getElementById("addDiv");
intelId = setInterval(function () {
var widthDiv = parseInt(addDiv.style.width);
var heightDiv = parseInt(addDiv.style.height);
if (heightDiv <= 400) {
widthDiv = widthDiv + 0.5 * widthDiv;
heightDiv = heightDiv + 0.5 * heightDiv;
addDiv.style.width = widthDiv + "px";
addDiv.style.height = heightDiv + "px";
}
else {
clearInterval(intelId);
}
}, 100);
}
</script>
</head>
<body>
<div id="addDiv" style="width:60px; height:55px; background:Red; position:absolute; left:207px; top:203px;">
</div>
</body>
</html>
<body>
<div id="addDiv" style="width:60px; height:55px; background:Red; position:absolute; left:207px; top:203px;">
</div>
window.onload = function () {
var addDiv = document.getElementById("addDiv");
setInterval(function () {
var myWidth = parseInt(addDiv.style.width);
myWidth = myWidth + 0.01 * myWidth;//得到60.6,永远
alert(myWidth);
}, 1000);
}
window.onload = function () {
var addDiv = document.getElementById("addDiv");
var myWidth = parseInt(addDiv.style.width);
setInterval(function () {
myWidth = myWidth + 0.01 * myWidth;//这样就可以得到加后的值了
alert(myWidth);
}, 1000);
}
还是parseInt()这个方法的问题,
你第一次得到了层的高度和宽度,转换成整形成功,比如层的高度是50,宽度是60。
那么owidth+0.01*owidth就是一个小数,50+0.01*50=50.5,60+0.01*60=60.6
当第二次执行的时候层的高度和宽度都变成了50.5px,60.6px,
但是转换的时候,parseInt()这个方法还是把50.5px转换成了50,owidth=50,
60.6px,height=60,所以你得到的值是一样的。
解决方法:
owidth=parseInt(divsize.style.width)和
height=parseInt(divsize.style.height)
这以上两句放在函数changeSize的外面应该就可以了.(不要放在inc里面)
|