function moveElement(elementID,final_x,final_y,interval){
if(!document.getElementById) return false;
if(!document.getElementById(elementID)) return false;
var elem=document.getElementById(elementID);
if(elem.movement){
clearTimeout(elem.movement);
}
if(!elem.style.left || !elem.style.top) return false;
var xpos=parseInt(elem.style.left);
var ypos=parseInt(elem.style.top);
var dist=0;
if(xpos==final_x && ypos==final_y){
return true;
}
if(xpos<final_x){
dist=Math.ceil((final_x-xpos)/10);
xpos=xpos+dist;
}
if(xpos>final_x){
dist=Math.ceil((xpos-final_x)/10);
xpos=xpos-dist;
}
if(ypos<final_y){
dist=Math.ceil((final_y-ypos)/10);
ypos=ypos+dist;
}
if(ypos>final_y){
dist=Math.ceil((ypos-final_y)/10);
ypos=ypos-dist;
}
elem.style.left=xpos+"px";
elem.style.top=ypos+"px";
var repeat="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
elem.movement=setTimeout(repeat,interval);
}
function prepareSlideshow(){
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
if(!document.getElementById('intro')) return false;
var intro=document.getElementById('intro');
var slideshow=document.createElement('div');
slideshow.setAttribute('id','slideshow');
var frame=document.createElement('img');
frame.setAttribute('src','images/frame.gif');
frame.setAttribute('alt','');
frame.setAttribute('id','frame');
slideshow.appendChild(frame);
var preview=document.createElement('img');
preview.setAttribute('src','images/slideshow.gif');
preview.setAttribute('alt','a glimpse');
preview.setAttribute('id','preview');
slideshow.appendChild(preview);
insertAfter(slideshow,intro);
//在此之前的可以正常运行,效果可以显示出来,但是这后面的效果出不来
var links=document.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
links[i].onmouseover=function(){
var destination=this.getAttribute("href");
if(destination.indexOf("index.html") != -1){
moveElement("preview",0,0,5);
}
if(destination.indexOf("about.html") != -1){
moveElement("preview",-150,0,5);
}
if(destination.indexOf("photos.html") != -1){
moveElement("preview",-300,0,5);
}
if(destination.indexOf("live.html") != -1){
moveElement("preview",-450,0,5);
}
if(destination.indexOf("contact.html") != -1){
moveElement("preview",-600,0,5);
}
}
}
}
addLoadEvent(prepareSlideshow);反复和书上的代码对比过后还是无法发现哪里出错了,在prepareSlideshow()函数注释之前的效果可以实现,但是后面的就不行了,是否哪里出错了,望指点一二,感谢!
添加回答
举报
0/150
提交
取消