Avatar billede Slettet bruger
29. september 2001 - 23:09 Der er 9 kommentarer og
3 løsninger

Kan man breake et javascript ved mouseout?

Jeg har et lille script der bevæger en figur ved hjælp af musen, figuren følger altså musens bevægelser, og bliver startet med onmouseover.

jeg forestillede mig et eller andet onmouseout=\"java script:void()\" eller noget i den stil.

Avatar billede roenving Novice
29. september 2001 - 23:38 #1
Orv ... det var et godt spørgsmål, anybody ?·]

Jeg ved, at hvis du sætter en handling igang via javascript, så fortsætter den (f.eks. preload af billeder o.l.) indtil den er færdig, men det er et rigtig godt spørgsmål, om andre event-handlers kan afbryde eksisterende processer.
Avatar billede olebole Juniormester
29. september 2001 - 23:53 #2
<ole>
Hvis du lægger det på onmouseout, får du måske en masse \'flimmer\' ud af det. Det kommer under alle omstændigheder an på scriptet. Kan du ikke vise en URL med scriptet i funktion?
/mvh
</bole>
Avatar billede jakoba Nybegynder
30. september 2001 - 00:25 #3
Hvis det er dit eget script er det rimeligt nemt. du har sandsynligvis allerede et kald til funktionen  setTimeout( ) fordi den lille fyr lige skal vente på at musen får flyttet sig inden han flytter efter.

Find det kald hvis det er der.
Hvis det er der vil det ofte stå så en variabel får værdi fra funktionen.
    variAbel = setTimeout( ... );
hvis der gør er alting god, så skal du lige finde variAbel og sikre dig at den er defineret UDENFOR funktionen.
Hvis der ikke står
  var variAbel;
udenfor funktionen så skriv det selv, og led så efter var variAbel inden i funktionen og slet det \"var \" der står foran variAbel der.

Og så kan du lave din onmouseout handeler:
    onmouseout=\"clearTimeout( variAbel );\"

mvh JakobA

Avatar billede olebole Juniormester
30. september 2001 - 00:29 #4
Hmmm...jakoba, den var jeg også inde over, men sådan en musse-ting kører på noget \'document.onmousemove\' uden timeout\'s.
Det er nærmere noget med at sætte et flag og spørge til det, men det ville være rart at kunne se koden - og dens anvendelse  :)
/mvh
Avatar billede roenving Novice
30. september 2001 - 00:36 #5
>>ole & jakob
Det kommer vel helt an på, om den flytte-tingest kører i real-time ?

Men el_barto du kan vel definere en event (f.eks. onClick eller onDblClick) på den tingest du flytter, og så kan du vel afbryde flytningen -- sikkert ved at tænke i de metoder med faste variAbel\'r som ole og jakob angiver.

;·]
PS. er variAbel til stadighed det samme *G*
Avatar billede jakoba Nybegynder
30. september 2001 - 00:54 #6
roenving >> næ, den ændrer værdi for hver setTimeout :-))

el-barto >> Vi vil se kode. Der er som oleboe siger alt for mange muligheder uden.
Avatar billede roenving Novice
30. september 2001 - 01:09 #7
Jamen jeg tænkte på om Abel er en fast ting (måske lidt blød) og så er variAbel sikkert meget foranderlig *GG*
Avatar billede coderdk Praktikant
30. september 2001 - 02:24 #8
lav en slags \"semafor\" - så koden der bevæger din figur checker om variablen (semaforen) stopNow er 1 - hvis den er skal den stoppe...
Så skal din onMouseOut se nogenlunde sådan ud:

  onMouseOut=\"stopNow=1;\"
Avatar billede olebole Juniormester
30. september 2001 - 02:28 #9
ja, sætte et flag  ;o)
Avatar billede Slettet bruger
30. september 2001 - 13:24 #10
Undskyld jeg først poster nu, men jeg får ikke tilsendt e-mails fra eksperten længere...og når jeg prøver at ændre min e-mail står der bare \"none\".

Nå, men koden kan ses på http://www.divxit.dk/mus/ og er det i midten. Jeg har sat det op med frames, men abstraher fra dem :)

En anden ting jeg gerne vil er at pilen følger med når man bruger 8, 2, 4 og 6 på det numeriske tastatur til at scrolle op og ned.

BTW: Scriptet bliver først initialiseret når du kører musen over den blå pil.
Avatar billede olebole Juniormester
30. september 2001 - 17:52 #11
Prøv at skrive:

var timer;
function chaseCursor() {
  s1.chase(Xcursor,Ycursor)
  timer = setTimeout(\"chaseCursor()\", 35)
}

..så vil du kunne stoppe animationen med:
  clearTimeout(timer);

/mvh
Avatar billede Slettet bruger
01. oktober 2001 - 12:42 #12
Nu virker det jo godt!

Point uddeles efter pædagogisk forklaring *G*

Men er der nogen der kan hjælpe mig lidt mere?

Jeg vil gerne oprette et nyt spm. Jeg vil gerne have det således at når man scroller med mine up/down/left/right så følger pilen med. Som det er nu bliver den bare hængende et sted oppe på siden.

Er det noget der er forståeligt?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester