Jag skulle vilja ha en funktion som man skickar med id, left, top och hastighet. Funktionen ska då flytta lagret man angett till punkterna man angett i hastigheten man angett.
Någon som har en sådan funktion eller har lust att hjälpa mig med detta? :)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
JojoxxMedlem sedan juni 20004 308 inlägg Eftersom detta script använder generella funktioner går det säkert att optimera koden, men jag gillar generella funktioner :) Here goes;
<div id="foo" style="position:absolute;top:200px;left:200px;width:50px;height:50px;background:blue;"></div>
<script language="JavaScript">
function moveLayerAbs(Id,x,y){
if (document.all){
if (x) document.all[Id].style.left = x;
if (y) document.all[Id].style.top = y;
} else if (document.layers){
if (x) document.layers[Id].left = x;
if (y) document.layers[Id].top = y;
} else if (document.getElementById){
if (x) document.getElementById(Id).style.left = x+'px';
if (y) document.getElementById(Id).style.top = y+'px';
}
}
function getLayerX(Id){
if (document.all){
return parseInt(document.all[Id].style.left);
} else if (document.layers){
return parseInt(document.layers[Id].left);
} else if (document.getElementById){
return parseInt(document.getElementById(Id).style.left);
}
}
function getLayerY(Id){
if (document.all){
return parseInt(document.all[Id].style.top);
} else if (document.layers){
return parseInt(document.layers[Id].top);
} else if (document.getElementById){
return parseInt(document.getElementById(Id).style.top);
}
}
function scrollLayerTo(Id,x,y,speed){
difx=Math.abs(getLayerX(Id)-x);
dify=Math.abs(getLayerY(Id)-y);
if(difx<speed&&dify<speed){
moveLayerAbs(Id,x,y);
} else {
if(dify>difx){
movy=speed;
movx=parseInt((difx/dify)*speed);
} else {
movx=speed;
movy=parseInt((dify/difx)*speed);
}
if(getLayerX(Id)>x) movx=-movx;
if(getLayerY(Id)>y) movy=-movy;
moveLayerAbs(Id,getLayerX(Id)+movx,getLayerY(Id)+movy);
eval("setTimeout('scrollLayerTo(\""+Id+"\","+x+","+y+","+speed+")',5);");
}
}
scrollLayerTo('foo',10,150,5);
</script>
---Tillägg---
Kanske bör förklara funktionen. Det intressanta är anropet scrollLayerTo('foo',10,150,5) Den använder samma parameterföljd som du skrev. Id, x-destination, y-destination, hastighet (i.e. maximalt antal pixel att flytta / steg).
------------------
/ J
[Redigerat av Jojoxx den 05 sep 2001]
Tack Jojoxx! :)
Nu har jag lite kod att jobba med. :)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/