写了个函数,是点某行的时候自动换图片的
结果很奇怪,如果我把图片的SRC赋值后弹出个ALERT点一下的话
就能正常运行,要不然的话就无法正常运行,好奇怪啊
var oldW,oldH,objIMG;
oldW=400;
oldH=400;function viewIMG(ads)
{
objIMG=document.getElementById("imgShow"); objIMG.style.width="";
objIMG.style.height="";
objIMG.src=ads;
//alert(objIMG.src); ---如果这个不注释掉,程序就能正常运行 if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
//alert('新图片大于旧图片的大小');
if(w > h)
{
objIMG.style.width=oldW+"px"; }
else
{ objIMG.style.height=oldH+"px";
}
}}
结果很奇怪,如果我把图片的SRC赋值后弹出个ALERT点一下的话
就能正常运行,要不然的话就无法正常运行,好奇怪啊
var oldW,oldH,objIMG;
oldW=400;
oldH=400;function viewIMG(ads)
{
objIMG=document.getElementById("imgShow"); objIMG.style.width="";
objIMG.style.height="";
objIMG.src=ads;
//alert(objIMG.src); ---如果这个不注释掉,程序就能正常运行 if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
//alert('新图片大于旧图片的大小');
if(w > h)
{
objIMG.style.width=oldW+"px"; }
else
{ objIMG.style.height=oldH+"px";
}
}}
if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
//alert('新图片大于旧图片的大小');
if(w > h)
{
objIMG.style.width=oldW+"px";}
else
{objIMG.style.height=oldH+"px";
}
}
换成:
setTimeout("",1000);
试试,实在不行,再增加1000的值,改成5000,试试。
oldW=400;
oldH=400; function viewIMG(ads)
{
objIMG=document.getElementById("imgShow"); objIMG.style.width="";
objIMG.style.height=""; objIMG.src=ads;
//alert(objIMG.src); ---如果这个不注释掉,程序就能正常运行 if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
setTimeOUt("aa()",5000);
} }
function aa()
{
if(w > h)
{
objIMG.style.width=oldW+"px"; }
else
{ objIMG.style.height=oldH+"px";
} }
oldW=400;
oldH=400;function viewIMG(ads)
{
objIMG=document.getElementById("imgShow");objIMG.style.width="";
objIMG.style.height="";objIMG.src=ads;
//alert(objIMG.src); ---如果这个不注释掉,程序就能正常运行setTimeOUt("aa()",1000);--如果还不行,改成2000,3000甚至更大,试试}
function aa()
{
if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
//alert('新图片大于旧图片的大小');
if(w > h)
{
objIMG.style.width=oldW+"px"; }
else
{ objIMG.style.height=oldH+"px";
}
}
}[/Quote]
<script type="text/javascript">
var oldW, oldH, objIMG;
oldW = 40;
oldH = 20; function viewIMG(ads) {
objIMG = document.getElementById("imgShow"); objIMG.style.width = "";
objIMG.style.height = ""; objIMG.src = ads;
//alert(objIMG.src); ---如果这个不注释掉,程序就能正常运行
objIMG.onload = function() {
debugger;
if (this.width > oldW || this.height > oldH) {
var w, h;
w = this.width / oldW;
h = this.height / oldH;
alert('新图片大于旧图片的大小');
if (w > h) {
this.style.width = oldW + "px"; }
else {
this.style.height = oldH + "px";
}
}
}
}
</script> <img src="http://www.baidu.com/img/baidu_logo.gif" id="imgShow" alt=""
onclick="viewIMG('http://www.google.com/intl/en_ALL/images/logo.gif')" />
IMG里是这样写的然后函数是这样写的var oldW,oldH,objIMG;
oldW=400;
oldH=400;
function viewIMG(ads)
{
objIMG=document.getElementById("imgShow"); objIMG.style.width="";
objIMG.style.height="";
objIMG.src=ads; if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
if(w > h)
{
objIMG.style.width=oldW+"px";
objIMG.style.height=(parseInt(objIMG.style.height)/w)+"px";
}
else
{
objIMG.style.width=(parseInt(objIMG.style.width)/h)+"px";
objIMG.style.height=oldH+"px";
}
}
resetIMG(objIMG);
}function resetIMG(obj)
{
if (parseInt(obj.style.width) > oldW || parseInt(obj.style.height) > oldH)
{
var w,h;
w=parseInt(obj.style.width)/oldW;
h=parseInt(obj.style.height)/oldH;
if(w > h)
{
obj.style.width=oldW+"px";
obj.style.height=(parseInt(obj.style.height)/w)+"px";
//alert('W:'+objIMG.width+'--H:'+objIMG.height);
}
else
{
obj.style.width=(parseInt(obj.style.width)/h)+"px";
obj.style.height=oldH+"px";
//alert('W:'+objIMG.width+'--H:'+objIMG.height);
}
}
}