Avatar billede bumsenhejhej Nybegynder
05. august 2005 - 21:02 Der er 27 kommentarer

JavaScript: Få musen til at gå derhen når man klikker.

Er det ikke muligt at lave sådan når man trykker et sted på musen så flytter så kommer der et x der hvor man trykkede, altså den skal gå derhen, ligesom hvis jeg trykker her.


......................................HER
.........................................
.........................................
til her..................................


så ligner det:

......................................HER
.............................x..........
......................x..................
til her........x.........................

Altså ligesom når man ser en mand gå :D
Avatar billede jonashn Nybegynder
06. august 2005 - 18:22 #1
Jeg fårstår det ikke helt... Vil du have musen til at gå et specifikt sted hen når man trykker på et felt, eller vil du have den til at indsætte et x der hvor man trykker, eller noget helt tredie?
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 14:04 #2
hvis nu der er en tabel sådan
1....2....3.....4....5
6....7....8.....9....10
11...12...13....14....15


også du trykker på 15 så skal den ligesom "flyve" fra 1 til 15 skråt ned..
hvis du så trykker på 4 når du har landet på 15 skal den "flyve" skråt fra 15 til 4..
Avatar billede roenving Novice
07. august 2005 - 14:06 #3
Så har du jo allerede flyttet musen ?-)
Avatar billede thesurfer Nybegynder
07. august 2005 - 14:07 #4
roenving> Hahahaha! Det er rigtigt :-)

/theSurfer
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 16:10 #5
Hvad med at tage det seriøst?
fx.. hvis du trykker et sted på en tabel så rykker den sig over, som en mand som GÅR derover.. altså en div ruller sig lige så stille der over hvor man trykkede..
Avatar billede busschou Praktikant
07. august 2005 - 16:15 #6
bumsenhejhej >> tror nu nok de tager det seriøst
Hvis den først skal "gå" når du allerede har flyttet den og klikket, ja så skal den jo først flyttes tilbage igen, så lidt er der jo om det
Men du kan få noget andet end markøren til at flytte sig fra 1 til 15
Men det kræver at du ved hvor du kom fra
Hvis du kun ved at du trykker på 15, hvordan ved du så om du kommer fra 1 eller 10 eller 7 ?
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 16:21 #7
den skal starte på tabel id 1
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 16:46 #8
også hvis man trykker på 15 også bagefter 4 skal den gå fra 15 til 4
Avatar billede busschou Praktikant
07. august 2005 - 16:48 #9
jeg har ikke lige nogen løsning på det desværre
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 16:50 #10
kan man ikke lave på hver tabel sådan noget med onclick="flyt(1,300,200);" altså 300 er y aksen og 200 er x aksen også laver man dem på hver???

ogsånår man klikker laver den en startleft = 300 også laver startleftialt--- ved y og starttopialt+++ eller hvordan det nu er
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 18:53 #11
,,
Avatar billede nielle Nybegynder
07. august 2005 - 19:10 #12
I de kilder jeg har kunnet finde siges det at det ikke er muligt at flytte musen via JavaScript. Godt nok er det ikke vildt mange kilder jeg har fundet, og godt nok er de heller ikke specielt officielle. Men jeg er nu alligevel tilbøjelig til at tro på dem.

Når man tænker nærmere over det så ville det også være en gevaldig sikkerehedsrisiko hvis man kunne overtage klientens mus (og/eller keyboard)!

Som et alternativ til at flytte musen, kunne du måske nøjes med at flytte et billede rundt på skærmen. Det kan nemlig sagtens lade sig gøre.
Avatar billede busschou Praktikant
07. august 2005 - 19:14 #13
ja men det dur jo heller ikke at flytte musen!
Hvis man flytter musen fra felt 1 til 15 og klikker og det så først er der musen skal flyttes, det er jo umuligt, så skal man flytte musen fra 1 til 15, kode program til at flytte den fra 15 til 1 for at vise at den igen flyttes i skridt fra 1 til 15

Det er noget rod
Så det skal vel være noget med et billede
Eller et trace på musen evt ? dem findes der masser af derude jo
Avatar billede thesurfer Nybegynder
07. august 2005 - 21:43 #14
bumsenhejhej>

Spørgsmålet:
---
Er det ikke muligt at lave sådan når man trykker et sted på musen så flytter så kommer der et x der hvor man trykkede, altså den skal gå derhen, ligesom hvis jeg trykker her.


......................................HER
.........................................
.........................................
til her..................................


så ligner det:

......................................HER
.............................x..........
......................x..................
til her........x.........................

Altså ligesom når man ser en mand gå :D
---

bumsenhejhejs første indlæg:
---
hvis nu der er en tabel sådan
1....2....3.....4....5
6....7....8.....9....10
11...12...13....14....15


også du trykker på 15 så skal den ligesom "flyve" fra 1 til 15 skråt ned..
hvis du så trykker på 4 når du har landet på 15 skal den "flyve" skråt fra 15 til 4..
---


Kan du ikke se det?
- Du flytter musen til nr 15.
- Du klikker på nr 15.
- Cursoren/musemarkøren står jo allerede på nr, og kan derfor ikke flyttes fra nr 1 og til nr 15 (som den jo allerede står på).

Med mindre, at du vil have, at cursoren/musemarkøren skal flytte sig til nr 1, og derefter "gå" (som du selv skriver) over til nr 15.


Jeg er enig med nielle. Det burde IKKE kunne lade sig gøre, at overtage musen eller keyboardet.

/theSurfer
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 23:03 #15
det kan lade sig gøre.. så engang et script her på eksperten..

Men tror i har mistforstået det..
Slet ikke med styring af mus eller noget..

Laver et eks.

Har en tabel med 15 onclick på.
fx.

<tabel id="felt-1" Onclick="funktion(1,100,300);">...</tabel>
<tabel id="felt-2" Onclick="funktion(2,200,300);">...</tabel>
<tabel id="felt-3" Onclick="funktion(3,300,300);">...</tabel>
<tabel id="felt-4" Onclick="funktion(4,400,300);">...</tabel>
<tabel id="felt-5" Onclick="funktion(5,500,300);">...</tabel>

i onlick .. 1 er felt-1.. 100 er "left" ved en div.. 300 er top ved en div.
funktionen "funktion" kan fx se sådan ud:

function funktion(feltID,leftID,topID)
{
var startleftId = leftID--;
var starttopId  = topID++;
document.getElementById('diven').style.top = starttopId;
document.getElementById('diven').style.left = startleftId;
}

- høhø, kan ikke javascript også bare et eksempel.

altså når man ser siden skal diven "diven" starte på tabel id'et 1
Også hvis man fx. trykker på felt-15 skal den "gå" fra tabelID 1 til tabelID 15, langsomt, fx. setTimeout("blabla()",50);

Når man så har trykket på fx. tabelID 15 også trykker på tabelID 13 skal den fra 15 "gå" hen til tabelID 13..

Forstår i? :|
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 23:24 #16
Har prøvet og det virker fint, men kan bare ikke få den til at gøre det fra left og top felterne af.

Her er min funktion (fandt det i et spm på eksperten og lavede lidt om)

<SCRIPT LANGUAGE="JavaScript">
<!--
function ryk(id,left,top){
var idher = id;
var lefther = left;
var topher = top;


var kasseint=setInterval("flytKasse("+idher+","+lefther+","+topher+")",5);
}
var kasseleft = 100;
var kassetop = 100;


function flytKasse(id,left,top) {


  var left = kasseleft--;
  var top = kassetop++;
  document.getElementById('dig').style.left = ""+left+"px";
  document.getElementById('dig').style.top = ""+top+"px";
  if (kasseleft<=0) {
    clearInterval(kasseint);
  }
}

//-->
</SCRIPT>

og diven:
<div id="dig">hej</div>

og tabellerne:

<table style="border-collapse:collapse;" cellspacing="0" width="522">
    <tr>
        <td width="83" id="1" onclick="ryk(1,200,300);" style="border-top-width:1; border-right-width:1; border-bottom-width:1; border-left-width:1; border-color:black; border-style:solid;">
            <p>&nbsp;</p>
        </td>
</tr>
</table>


- osv
Avatar billede thesurfer Nybegynder
07. august 2005 - 23:27 #17
Ahhh... bumsenhejhej nævner "div" allerede her: 07/08-2005 16:10:34

Så giver det mere mening :-)

Vi andre (vil jeg mene) tror at du vil flytte cursoren/musemarkøren.. altså "pilen"..

Det andet kan godt lade sig gøre.. der bruger du bare setTimerout funktionen..

/theSurfer
Avatar billede thesurfer Nybegynder
07. august 2005 - 23:29 #18
Du skal jo bruge nogle IF-sætninger.. ellers går det ikke.. uden at checke hvor langt den er nået (med IF-sætningerne), vil den bare fortsætte..

/theSurfer
Avatar billede bumsenhejhej Nybegynder
07. august 2005 - 23:31 #19
kan du give et eksempel.. er mega dårlig til det
Avatar billede thesurfer Nybegynder
07. august 2005 - 23:34 #20
Kigger lige på det..

/theSurfer
Avatar billede thesurfer Nybegynder
08. august 2005 - 00:04 #21
forresten, så skal du bruger style="position:absolute", i din <div ...>


/theSurfer
Avatar billede thesurfer Nybegynder
08. august 2005 - 00:09 #22
..og jeg mener, at man også skal sætte left og top: "position:absolute;left:100px;top:100px;"

/theSurfer
Avatar billede bumsenhejhej Nybegynder
08. august 2005 - 00:14 #23
Jeps, helt iorden..
Avatar billede thesurfer Nybegynder
08. august 2005 - 00:27 #24
Har du egentlige andre divs, end bare "hej"? hvis ikke, kan du gøre koden kortere..

Rydder lige op, og poster koden..

/theSurfer
Avatar billede bumsenhejhej Nybegynder
08. august 2005 - 00:30 #25
Har kun diven "hej"
Avatar billede thesurfer Nybegynder
08. august 2005 - 00:37 #26
Her er et eksempel:

<script type="text/JavaScript" language="JavaScript">
<!--
var kasseint;
var obj;

function ryk(lefther,topher){
kasseint=setInterval("flytKasse(" + lefther + "," + topher + ")",1);
}

function flytKasse(flytleft,flyttop) {
obj = document.getElementById('dig').style; // obj = object/objekt

ol = parseInt(obj.left); // ol = obj left
ot = parseInt(obj.top); // ot = obj top

if (flytleft > ol) obj.left = ol + 1 + "px";
if (flyttop > ot) obj.top = ot + 1 + "px";
if (flytleft < ol) obj.left = ol - 1 + "px";
if (flyttop < ot) obj.top = ot - 1 + "px";

if (flytleft == ol && flyttop == ot) clearInterval(kasseint);

}

//-->
</script>

<span id="dig" style="position:absolute;left:0px;top:0px;border: 1px solid #000000;width:20px;height:20px">&nbsp;</span>

<table style="border-collapse:collapse;" cellspacing="0" width="522">
    <tr>
        <td width="83" id="1" onclick="ryk(200,300);" style="border-top-width:1; border-right-width:1; border-bottom-width:1; border-left-width:1; border-color:black; border-style:solid;">
            <p>&nbsp;</p>
        </td>
</tr>
</table>

/theSurfer
Avatar billede thesurfer Nybegynder
08. august 2005 - 00:39 #27
PS: jeg plejer at bruge "span" i stedet for "div".. men du kan bare lave det om igen..

/theSurfer
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