找到错误了: 是你的zoomSmall()中i的问题,导致程序一直执行. 你可以验证一下,大家讨论讨论:
<html>
<head>
</head>
<script language="javascript">
var i;
var w;
var h;
var a;
var yOrn = 0;
var nOry = 0;function c(t)
{
i=1;
w = t.width;
h = t.height;
if(document.all.ck.value=="0")
{
alert("fangda");
a = setInterval("zoomBig()",50);
document.all.ck.value="1";
alert(i)
}
else
{
alert(i)
setInterval("zoomSmall()",50);
document.all.ck.value="0";
}
}function zoomBig(t)
{
document.all.pic.width = w*(100+i)/100;
document.all.pic.height = h*(100+i)/100;
i+=4;
if(document.all.pic.width > window.screen.width)
{
window.clearInterval(a);
alert(i)
}
}function zoomSmall(t)
{
i+=4;
document.all.pic.width = w*(100/(100+i));
document.all.pic.height = h*(100/(100+i));
if(document.all.pic.width < 384)
{
window.clearInterval(a);
alert(i)
document.all.pic.width="384";
document.all.pic.height="288";
//document.all.ck.value="0";
}
}
</script>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><p align="right">
<img border="0" id="pic" src="1.jpg" width="384" height="288" onClick="c(this);"></p>
<input type="hidden" name="ck" value="0">
</body>
</html>
<html>
<head>
</head>
<script language="javascript">
var i;
var w;
var h;
var a;
var yOrn = 0;
var nOry = 0;function c(t)
{
i=1;
w = t.width;
h = t.height;
if(document.all.ck.value=="0")
{
alert("fangda");
a = setInterval("zoomBig()",50);
document.all.ck.value="1";
alert(i)
}
else
{
alert(i)
setInterval("zoomSmall()",50);
document.all.ck.value="0";
}
}function zoomBig(t)
{
document.all.pic.width = w*(100+i)/100;
document.all.pic.height = h*(100+i)/100;
i+=4;
if(document.all.pic.width > window.screen.width)
{
window.clearInterval(a);
alert(i)
}
}function zoomSmall(t)
{
i+=4;
document.all.pic.width = w*(100/(100+i));
document.all.pic.height = h*(100/(100+i));
if(document.all.pic.width < 384)
{
window.clearInterval(a);
alert(i)
document.all.pic.width="384";
document.all.pic.height="288";
//document.all.ck.value="0";
}
}
</script>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><p align="right">
<img border="0" id="pic" src="1.jpg" width="384" height="288" onClick="c(this);"></p>
<input type="hidden" name="ck" value="0">
</body>
</html>
<html>
<head>
</head>
<script language="javascript">
var i;
var w;
var h;
var a;
var yOrn = 0;
var nOry = 0;function c(t)
{
i=1;
w = t.width;
h = t.height;
if(document.all.ck.value=="0")
{
a = setInterval("zoomBig()",50);
document.all.ck.value="1";
}
else
{
b = setInterval("zoomSmall()",50);
document.all.ck.value="0";
}
}function zoomBig(t)
{
document.all.pic.width = w*(100+i)/100;
document.all.pic.height = h*(100+i)/100;
i+=4;
if(document.all.pic.width > window.screen.width)
{
window.clearInterval(a);
}
}function zoomSmall(t)
{
i+=4;
if(i<113 && i>1)
{
document.all.pic.width = w*(100/(100+i));
document.all.pic.height = h*(100/(100+i));
if(document.all.pic.width < 384)
{
window.clearInterval(a);
document.all.pic.width="384";
document.all.pic.height="288";
//document.all.ck.value="0";
}
}
else
{
window.clearInterval(b);
}
}
</script>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><p align="right">
<img border="0" id="pic" src="1.jpg" width="384" height="288" onClick="c(this);"></p>
<input type="hidden" name="ck" value="0">
</body>
</html>
function c(t)
{
i=1;
w = t.width;
h = t.height;
if(document.all.ck.value=="" || document.all.ck.value=="0")
{
alert("fangda");
a = setInterval("zoomBig()",50);
document.all.ck.value="1";
}else{
setInterval("zoomSmall()",50);//改成b=setInterval("zoomSmall()",50)
document.all.ck.value="0";
}
}function zoomSmall(t)
{
i+=4;
document.all.pic.width = w*(100/(100+i));
document.all.pic.height = h*(100/(100+i));
if(document.all.pic.width < 384)
{
window.clearInterval(a);//改成window.clearInterval(b)
alert(i)
document.all.pic.width="384";
document.all.pic.height="288";
//document.all.ck.value="0";
}
}
楼主试试.
当图片还没有放至最大时你点击图片看看效果.以上是小弟片面理解.多指教.
a=setInterval("zoomSmall()",50);
<head>
</head>
<script language="javascript">
var i;
var w;
var h;
var a;
var b;
var yOrn = 0;
var nOry = 0;
var ick=0;
var initimgW;//原始图片宽
var initimgH;//原始图片高
function c(t)
{
i=1;
w = t.width;
h = t.height;
if(ick==0)
{
initimgW = t.width;
initimgH = t.height;
a = setInterval("zoomBig()",50);
ick=1;
}
else
{
b = setInterval("zoomSmall()",50);
ick=0;
}
}function zoomBig(t)
{
document.all.pic.width = w*(100+i)/100;
document.all.pic.height = h*(100+i)/100;
i+=4;
if(document.all.pic.width > window.screen.width)
{
window.clearInterval(a);
}
}function zoomSmall(t)
{
i+=4;
if(i<113 && i>1)
{
document.all.pic.width = w*(100/(100+i));
document.all.pic.height = h*(100/(100+i));
if(document.all.pic.width < 384)
{
window.clearInterval(a);
document.all.pic.width=initimgW ; //设置宽
document.all.pic.height=initimgH ;//设置高
}
}
else
{
window.clearInterval(b);
}
}
</script>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><p align="right">
<img border="0" id="pic" src="1.jpg" width="384" height="288" onClick="c(this);"></p>
</body>
</html>改了一点儿,效果不是更好吗??这样就比较动态了
<head>
</head>
<script language="javascript">
var i;
var w;
var h;
var a;
var yOrn = 0;
var nOry = 0;function c(t)
{
i=1;
w = t.width;
h = t.height;
if(document.all.ck.value=="0")
{
a = setInterval("zoomBig()",50);
document.all.ck.value="1";
}
else
{
b = setInterval("zoomSmall()",50);
document.all.ck.value="0";
}
}function zoomBig(t)
{
document.all.pic.width = w*(100+i)/100;
document.all.pic.height = h*(100+i)/100;
i+=4;
if(document.all.pic.width > window.screen.width)
{
window.clearInterval(a);
}
}function zoomSmall(t)
{
i+=4;
if(i<113 && i>1)
{
document.all.pic.width = w*(100/(100+i));
document.all.pic.height = h*(100/(100+i));
if(document.all.pic.width < 384)
{
window.clearInterval(a);
document.all.pic.width="384";
document.all.pic.height="288";
//document.all.ck.value="0";
}
}
else
{
window.clearInterval(b);
}
}
</script>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><p align="right">
<img border="0" id="pic" src="1.jpg" width="384" height="288" onClick="c(this);"></p>
<input type="hidden" name="ck" value="0">
</body>
</html>
当你缩到最小或最大时应该清除用clearInterval()清空timer呀,
要不你也可以用setTimeout()来递归执行呀....