var div = document.getElementsByTagName("div")[0], i = 0, movimiento = function(rapidez){ var tiempo = (function(){ switch (rapidez){ case "rapido": return 1; break; case "normal": return 5; break; case "lento": default: return 10; break; } })(), intervalo = setInterval(function(){ i++; div.style.left = i + "px"; if(i % 100 === 0) clearInterval(intervalo); }, tiempo); }; div.style.left = div.style.left || 0; div.addEventListener("mouseover", function(){ movimiento("lento"); }, false);
<div></div>
div{ width: 22.5em; height: 22.5em; position: relative; background: url(http://oi54.tinypic.com/28k3pjo.jpg); }