问题:
因为把 preview.style.left = "0px"; 写成了 preview.style.left = "0px;" 找了一个多小时的错误……
function prepareSlideshow(){
// make sure the browser support DOM
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
// make sure the elements exist
if(!document.getElementById("linklist")) return false;
if(!document.getElementById("preview")) return false;
// set image
var preview = document.getElementById("preview");
preview.style.position = "absolute";
preview.style.left = "0px";
preview.style.top = "0px";
//
// get all the links in linklist
var list = document.getElementById("linklist");
var links = list.getElementsByTagName("a");
// mouseover animation
links[0].onmouseover = function(){
moveElement("preview",-100,0,10);
}
links[1].onmouseover = function(){
moveElement("preview",-200,0,10);
}
links[2].onmouseover = function(){
moveElement("preview",-300,0,10);
}
}
function moveElement(ElmentId,final_x,final_y,interval){
var elem = document.getElementById(ElmentId);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if(xpos == final_x && ypos == final_y){
return true;
}
if(xpos < final_x){
xpos++;
}
if(xpos > final_x){
xpos--;
}
if(ypos < final_y){
ypos++;
}
if(ypos > final_y){
ypos--;
}
elem.style.left = xpos +"px";
elem.style.top = ypos + "px";
var repeat = "moveElement('"+ElmentId+"',"+final_x+","+final_y+","+interval+")"
movement = setTimeout(repeat,interval);
}