changing the src will not always give a smooth transition
this is why I am suggesting changing the visibility
as the images are large this may be better
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style type="text/css">
/*<![CDATA[*/
#tst {
position:relative;width:200px;height:200px;border:solid black 1px;
}
#tst IMG {
position:absolute;left:25px;top:25px;visibility:hidden;
}
/*]]>*/
</style>
</head>
<body>
<div id="tst" >
</div>
<input type="button" name="" value="Swap 0" onclick="Swap('tst',0);" />
<input type="button" name="" value="Swap 1" onclick="Swap('tst',1);" />
<input type="button" name="" value="Swap 2" onclick="Swap('tst',2);" />
<input type="button" name="" value="Swap 3" onclick="Swap('tst',3);" />
<script type="text/javascript">
/*<![CDATA[*/
function Swap(id,nu){
var p=document.getElementById(id);
var imgs=p.getElementsByTagName('IMG');
if (imgs[0]){
imgs[0].style.visibility='hidden';
}
if (imgs[nu]&&imgs[nu].complete&&imgs[nu].width>100){
if (this.lst){
this.lst.style.visibility='hidden';
}
this.lst=imgs[nu];
this.lst.style.left=(p.offsetWidth-this.lst.width)/2+'px';
this.lst.style.top=(p.offsetHeight-this.lst.height)/2+'px';
this.lst.style.visibility='visible';
}
}
var ImgAry=['http://www.vicsjavascripts.org.uk/StdImages/One.gif','http://www.vicsjavascripts.org.uk/StdImages/Two.gif','http://www.vicsjavascripts.org.uk/StdImages/Three.gif','http://www.vicsjavascripts.org.uk/StdImages/Four.gif'];
function Load(id,ary){
var obj=document.getElementById(id);
for (var img,z0=0;z0<ary.length;z0++){
img=document.createElement('IMG');
img.src=ary[z0];
img.style.visibility=(z0>0?'hidden':'visible');
obj.appendChild(img);
}
}
Load('tst',ImgAry);
/*]]>*/
</script>
</body>
</html>
Bookmarks