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

javascript-trubbel

Rekommendera Poster

Lasse123

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>

Dela detta inlägg


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

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...