用clip可以做到,
一个小例子<img src="http://www.csdn.net/Images/logo_csdn.gif" id="csdn"/>
<script language="javascript">
<!--
function clip(){
var csdn = document.getElementById("csdn");
if( csdn.flag == 1 )
{
csdn.style.left = (parseInt(csdn.style.left) + csdn.width/2) + "px";
clipPart = "rect(0,"+csdn.width/2+","+csdn.height+",0)";
csdn.flag = 2;
}
else
{
csdn.style.left = (parseInt(csdn.style.left) - csdn.width/2) + "px";
clipPart = "rect(0,"+csdn.width+","+csdn.height+","+csdn.width/2+")";
csdn.flag = 1;
}
csdn.style.clip = clipPart;
}
function init(){
var csdn = document.getElementById("csdn");
csdn.style.position="absolute";
csdn.flag =1
csdn.style.left = "-"+csdn.width/2+"px";
csdn.style.top  = "0px";
}
init();
setInterval(clip, 500 );
//-->
</script>