Just nu i M3-nätverket
Jump to content

javascript-trubbel


Lasse123

Recommended Posts

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>

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...