<script>
//让指定的对象在窗口内移动
//obj 要移动的对象
//act 动作 start:移动 stop:停止
function move(obj, act)
{
var vmin = 2;
var vmax = 5;
var vr = 2;
var timer1;function aa()
{
movechip(chip);
}
function Chip(obj) {
try{

this.obj = obj;
this.vx = vmin + vmax * Math.random();
this.vy = vmin + vmax * Math.random();
this.w = obj.clientWidth;
this.h = obj.clientHeight;
this.xx = 0;
this.yy = 0;
this.timer1 = null;
}catch(e){alert(e)}
}
function movechip(hy_movebar)
{
try{
//eval("chip=" + hy_movebar);
chip = hy_movebar;
pageX = window.document.body.scrollLeft;
pageW = window.document.body.offsetWidth - 8;
pageY = window.document.body.scrollTop;
pageH = window.document.body.offsetHeight;
chip.xx = chip.xx + chip.vx;
chip.yy = chip.yy + chip.vy; chip.vx += vr * (Math.random() - 0.5);
chip.vy += vr * (Math.random() - 0.5);
if (chip.vx > (vmax + vmin)) {
chip.vx = (vmax + vmin) * 2 - chip.vx;
}
if (chip.vx < (-vmax - vmin)) {
chip.vx = (-vmax - vmin) * 2 - chip.vx;
}
if (chip.vy > (vmax + vmin)) {
chip.vy = (vmax + vmin) * 2 - chip.vy;
}
if (chip.vy < (-vmax - vmin)) {
chip.vy = (-vmax - vmin) * 2 - chip.vy;
}
if(chip.xx <= pageX) {
chip.xx = pageX;
chip.vx = vmin + vmax * Math.random();
}
if(chip.xx >= pageX+pageW-chip.w) {
chip.xx = pageX+pageW-chip.w;
chip.vx = -vmin - vmax * Math.random();
}
if(chip.yy <= pageY) {
chip.yy=pageY;
chip.vy = vmin + vmax * Math.random();
}
if(chip.yy >= pageY + pageH - chip.h) {
chip.yy = pageY + pageH - chip.h;
chip.vy = -vmin - vmax * Math.random();
}

chip.obj.style.pixelLeft = chip.xx;
chip.obj.style.pixelTop = chip.yy;
//alert(window['chip']);
//chip.timer1 = 
window.setTimeout(aa, 100);
}catch(e){alert(e)}
}
function stopme (hy_movebar)
{
chip = hy_movebar;
if(chip.timer1 != null) {
clearTimeout (chip.timer1);
}
}
var hy_movebar = new Chip(obj);
if (act == 'start') {
movechip(hy_movebar);
} else {
stopme (hy_movebar)
}

var barload = 1;
}
</script><body>
<img name='img' src='E:\tomcat40\webapps\webdav\tomcat.gif' onload="move(this, 'start');">
</body>这样没问题了,建议对代码进行重写,以便更清晰