Just nu i M3-nätverket
Gå till innehåll

javascript-trubbel


Lasse123

Rekommendera Poster

Hej, jag vill flytta runt en bild på skärmen och undrar lite hur man kan göra detta. Dels så undrar jag hur man gör för att skicka vidare variabler som en funktion fått som argument till en annan funktion utan att "lagra om" dom (se exemplet nedan). Sen undrar jag lite över olika former av "delay"-funktioner, den jag använder i exemplet nedan är setTimeout men den verkar inte klara att hålla tiden så bra(olika tid beroende på hur mycket man rör på musen), finns det ingen "ren" delay, typ sleep(200ms)?

Jag undrar oxå hur seg Math.random() är, dvs hur lång tid tar den att utföra (hur lång tid tar javascript funktioner i allmänhet??).

Slutligen undrar jag om ni har nåt tips på hur man enklare skulle kunna åstakomma det jag försöker nedan...

 

<html>

<head>

<title>Javatest</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<script language="JavaScript">

<!--

var ismoving=0;

var delay=30;

 

function direction(){

dirxy=Math.random()*4;

dirxy=Math.round(dirxy);

return(dirxy);

}

 

function slide(obj,x,s){

if(ismoving==0){

ismoving=1;

a1=obj;

a2=x;

a3=s;

a4=direction();

loopf(a1,a2,a3,a4);

setTimeout("ismoving=0",(x*delay));

}

}

 

function loopf(a1,a2,a3,a4){

if(a2>0){

x1=a1;

x2=(a2-1);

x3=a3;

x4=a4;

move(a1,a4,a3);

setTimeout("loopf(x1,x2,x3,x4)",delay);

}

}

 

function move(obj,xy,speed){

if(xy==0){

obj.style.left=parseInt(obj.style.left) +speed+'px';}

if(xy==1){

obj.style.top=parseInt(obj.style.top)-speed+'px';}

if(xy==2){

obj.style.left=parseInt(obj.style.left)-speed+'px';}

if(xy==3){

obj.style.top=parseInt(obj.style.top)+speed+'px';}

}

//-->

</script>

<body bgcolor="#000000" text="#FFFFFF">

<img src="sat.gif" id="bild1" style="position: absolute; top: 300px; left: 300px" onmousemove="slide(bild1,10,2)">

</body>

</html>

Länk till inlägg
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...