Den Mauszeiger an eine bestimmte Position bewegen?

Lesezeit: 8 Minuten

Den Mauszeiger an eine bestimmte Position bewegen
Dennkster

Ich baue ein HTML5-Spiel und versuche, den Mauszeiger über ein bestimmtes Steuerelement für ein bestimmtes Ereignis zu bewegen, sodass das Bewegen in eine bestimmte Richtung immer dasselbe Ergebnis hat. Ist das möglich?

  • Wenn ich das richtig verstehe, möchten Sie den Mauszeiger mit JS bewegen – das ist nicht möglich. Sie müssen einen anderen Weg finden.

    – dreißig Punkte

    20. Januar 2011 um 20:59 Uhr

  • HTML5 hat einige neue Mausereignisse, aber nichts, um die Maus zu bewegen. Sie könnten immer window.moveBy(x, y); das Fenster darunter zu bewegen, wo die Maus schwebt … das wäre ein ziemlich abgefahrenes Spiel 🙂 Die einzige othadoxe Möglichkeit, die ich sehe, ist über ActiveX – ewwww, yuk!

    – Jeremy Thompson

    16. August 2011 um 1:54 Uhr

  • Nein — JavaScript lässt Sie das nicht zu, aber ich denke, es könnte eine Problemumgehung geben, bei der die Seite an eine bestimmte Stelle verschoben wird, die auch den Cursor “bewegt”, indem Sie das Fenster scrollTo() verwenden — siehe w3Schools bei w3schools.com/jsref/met_win_scrollto.asp.

    – Sternenstaub

    21. Dezember 2015 um 19:25 Uhr

  • Viel Glück beim Bewegen der Maus auf Smartphones.

    – Coeur

    18. Dezember 2018 um 15:02 Uhr

  • Bild eines Mauszeigers kann bewegt werden und Cursor:none setzen. Es ist kein Sicherheitsrisiko, da Sie der Programmierer sind. Wenn Sie ein Spiel erstellen können, können Sie auch das Risiko vermeiden, während Sie Ihr Spiel spielen, auf Ihr Bankkonto zu klicken.

    Benutzer985399

    31. Oktober 2019 um 0:35 Uhr


Den Mauszeiger an eine bestimmte Position bewegen
Martin Jespersen

Sie können den Mauszeiger nicht mit Javascript bewegen.

Denken Sie nur eine Sekunde über die Auswirkungen nach, wenn Sie könnten 😉

  1. Benutzer denkt: “Hey, ich möchte auf diesen Link klicken”
  2. Javascript bewegt den Mauszeiger zu einem anderen Link
  3. Der Benutzer klickt auf den falschen Link und lädt versehentlich Malware herunter, die sein C-Laufwerk formatiert und seine Süßigkeiten isst

  • Wenn ich darüber nachdenke, wäre das großartig 😛

    – Martin Jespersen

    20. Januar 2011 um 21:01 Uhr

  • Heh, ich würde es hassen, um die Kontrolle über meinen Mauszeiger zu kämpfen: ZURÜCK SIE ANZEIGEN, SAGE ICH ZURÜCK!

    – Mixer

    20. Januar 2011 um 21:08 Uhr

  • Eine Webseite kann einen Download erzwingen, ohne dass jemand auf einen Link klicken muss, also ist das, was Sie behaupten, nicht wirklich ein Sicherheitsproblem. Es ist jedoch nicht möglich, sich außerhalb des Webseitenfensters zu bewegen.

    – dionyziz

    2. Februar 2011 um 20:44 Uhr

  • @dionyziz: Es gibt einen ziemlich großen Unterschied zwischen dem erzwungenen Herunterladen in eine Sandbox und dem anschließenden Herunterladen im Benutzerbereich, das durch Benutzerinteraktion gestartet wird. Die Auswirkungen auf die Sicherheit sind tatsächlich sehr groß.

    – Martin Jespersen

    12. April 2012 um 18:50 Uhr

  • Ich denke, ein Dialogfeld sollte einen Benutzer fragen, ob er Mausfallen zulassen möchte. Wenn der Benutzer „nein“ sagt, kann nichts davon passieren

    – Braden Best

    22. Dezember 2012 um 19:05 Uhr

  1. Führen Sie einen kleinen Webserver auf dem Client-Rechner aus. Kann ein kleines 100kb-Ding sein. Ein Python/Perl-Skript usw.
  2. Fügen Sie eine kleine, vorkompilierte C ausführbare Datei, die die Maus bewegen kann.
  3. Führen Sie es als CGI-Skript über einen einfachen http-Aufruf aus, AJAX, was auch immer – mit den Koordinaten, zu denen Sie die Maus bewegen möchten, z.

    http://localhost:9876/cgi/mousemover?x=200&y=450

PS: Für jedes Problem gibt es Hunderte von Ausreden dafür, warum und wie – es kann und sollte nicht getan werden. Aber in diesem unendlichen Universum ist es wirklich nur eine Frage der Entscheidung – ob SIE wird es geschehen lassen.

  • Ich denke, wir waren alle an Bord, bis “c ausführbar” … xD

    – dGRAMOP

    11. Februar 2017 um 20:29 Uhr

  • ein Webserver? vielleicht meinst du ein programm mit einer http-schnittstelle.. keine notwendigkeit für web. Die Programmiersprache Go könnte gegenüber C insofern vorteilhaft sein, als sie es einfach macht, den http-Teil hinzuzufügen, oder alternativ würde der Nodejs-Interpreter Code ausführen, der auch ganz einfach eine HTTP-Schnittstelle enthalten könnte, da der Nodejs-Interpreter so gebaut ist, dass es einfach ist Serveranwendungen schreiben.

    – Barlop

    24. Mai 2017 um 1:36 Uhr

  • C = 0 Abhängigkeiten. Web ist http. Keine niedliche Homepage, hier.. Nur der Transport.

    – Alex Grau

    24. Mai 2017 um 4:24 Uhr

  • +1 für PS. Können wir CGI-Aufrufe mit dem Node-Dev-Server oder etwas Ähnlichem ausführen? npmjs.com/package/http-server ??

    – BEI IHRER

    29. April 2018 um 3:47 Uhr

  • Ist das jemandem von euch schon mal aufgefallen Javascript Tag unter der Frage?

    Benutzer985399

    31. Oktober 2019 um 1:21 Uhr


1645786513 84 Den Mauszeiger an eine bestimmte Position bewegen
X-Achse

Ich könnte mir vorstellen, dass Sie den Mauszeiger in einem bestimmten Bereich des Bildschirms platzieren könnten, wenn Sie nicht den echten (System-)Mauszeiger verwenden würden.

Sie könnten beispielsweise ein Bild erstellen, das anstelle Ihres Cursors agiert, ein Ereignis verarbeiten, das beim Erkennen einer Maus in Ihre Szene eindringt, den Stil des Systemcursors auf „keine“ setzen (sceneElement.style.cursor="none"), würde dann ein verstecktes Bildelement hervorbringen, das als Cursor fungiert und sich an einer beliebigen Stelle in der Szene befindet, basierend auf einer vordefinierten Achsen-/Begrenzungsrahmen-Übersetzung.

Auf diese Weise würde Ihre Übersetzungsmethode unabhängig davon, wie Sie den echten Cursor bewegt haben, Ihren Bildcursor dort halten, wo Sie ihn benötigen.

bearbeiten: ein Beispiel in jsFiddle mit einer Bilddarstellung und erzwungener Mausbewegung

  • Ja, du kannst. Sie setzen einfach den Cursorstil für ein bestimmtes Element auf „keine“. Versuche es.

    – X-Achse

    20. Januar 2011 um 21:19 Uhr


  • Dies ist die nachdenklichste Antwort. Und bietet tatsächlich eine echte Lösung, während einige andere Antworten keinen wirklichen Mehrwert bieten 🙂 Aber wie wird Webgl interessante Spiele wie FPS usw. bringen, wenn wir keine Maussperre bekommen können, das klingt ziemlich einschränkend …

    – Dennkster

    23. Januar 2011 um 7:51 Uhr


  • Das hat immer noch das Problem, dass Sie Ihre Maus nicht nach links “weiterbewegen” können. Sobald die Maus die Webseite verlässt, können Sie sie nicht mehr steuern.

    – dionyziz

    2. Februar 2011 um 20:45 Uhr

  • Dies ist eine perfekte Lösung für dieses Problem. Der einzige Grund, warum sich Leute beschweren, ist, dass es keine triviale Lösung ist. Manchmal muss man etwas programmieren, Jungs!

    – Martin

    6. April 2013 um 19:19 Uhr


  • spielte mit dieser Idee herum und machte ein Beispiel in JSFiddle jsfiddle.net/jaakkytt/9uczV

    – Jaak Kütt

    5. Dezember 2013 um 13:35 Uhr

Tolle Frage. Das ist wirklich etwas, das in der Javascript-Browser-API fehlt. Ich arbeite mit meinem Team auch an einem WebGL-Spiel, und wir brauchen diese Funktion. Ich habe ein Problem zu Bugzilla von Firefox eröffnet, damit wir anfangen können, über die Möglichkeit zu sprechen, eine API zu haben, die das Sperren der Maus ermöglicht. Dies wird für alle Entwickler von HTML5/WebGL-Spielen da draußen nützlich sein.

Wenn Sie möchten, kommen Sie vorbei und hinterlassen Sie einen Kommentar mit Ihrem Feedback und stimmen Sie das Problem positiv ab:

https://bugzilla.mozilla.org/show_bug.cgi?id=630979

Danke!

1645786514 486 Den Mauszeiger an eine bestimmte Position bewegen
Amische G

Sie könnten die Position des Mauszeigers erkennen und dann die Webseite (mit relativer Körperposition) verschieben, sodass sie über dem schweben, was Sie anklicken möchten.

Als Beispiel können Sie diesen Code auf der aktuellen Seite in Ihrer Browserkonsole einfügen (und danach aktualisieren)

var upvote_position = $('#answer-12878316').position();
$('body').mousemove(function (event) {
    $(this).css({
        position: 'relative',
        left: (event.pageX - upvote_position.left - 22) + 'px',
        top: (event.pageY - upvote_position.top - 35) + 'px'
    });        
});

  • Ihr Beitrag wäre wertvoller, wenn Sie ein Codebeispiel posten könnten, das dies tut. Außerdem empfehle ich Ihnen, einen Blick in die FAQ zu werfen: stackoverflow.com/faq

    – ForceMagic

    14. Oktober 2012 um 0:40 Uhr


  • Wie klicken Sie eigentlich auf das richtige Element, wenn der Benutzer klickt?

    – mjs

    2. Oktober 2016 um 21:41 Uhr

  • @momomo Sie können verwenden document.getElementByID('thingtoclick').click();

    – Kaskadierungsstil

    23. Dezember 2016 um 16:37 Uhr

  • Das war total spitze! Weg, um die Ecke zu denken! Ich bezweifle, dass es wirklich das bietet, was der Fragesteller wollte, aber so cool es auch war, wen interessiert das wirklich?

    – gcdev

    10. Mai 2017 um 17:13 Uhr

Also, ich weiß, das ist ein altes Thema, aber ich werde zuerst sagen, dass es nicht möglich ist. Am nächsten kommt es derzeit, die Maus an einer einzigen Position zu fixieren und die Änderung in x und y zu verfolgen. Dieses Konzept wurde – so sieht es aus – von Chrome und Firefox übernommen. Es wird von dem verwaltet, was genannt wird Maussperre, und das Drücken von Escape wird es brechen. Von meinem knapp Nachlesen, ich denke, die Idee ist, dass es die Maus an einer Stelle fixiert und Bewegungsereignisse ähnlich wie Click-and-Drag-Ereignisse meldet.

Hier ist die Release-Dokumentation:
Feuerfuchs: https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API
Chrom: http://www.chromium.org/developers/design-documents/mouse-lock

Und hier ist eine ziemlich nette Demonstration: http://media.tojicode.com/q3bsp/

  • Ihr Beitrag wäre wertvoller, wenn Sie ein Codebeispiel posten könnten, das dies tut. Außerdem empfehle ich Ihnen, einen Blick in die FAQ zu werfen: stackoverflow.com/faq

    – ForceMagic

    14. Oktober 2012 um 0:40 Uhr


  • Wie klicken Sie eigentlich auf das richtige Element, wenn der Benutzer klickt?

    – mjs

    2. Oktober 2016 um 21:41 Uhr

  • @momomo Sie können verwenden document.getElementByID('thingtoclick').click();

    – Kaskadierungsstil

    23. Dezember 2016 um 16:37 Uhr

  • Das war total spitze! Weg, um die Ecke zu denken! Ich bezweifle, dass es wirklich das bietet, was der Fragesteller wollte, aber so cool es auch war, wen interessiert das wirklich?

    – gcdev

    10. Mai 2017 um 17:13 Uhr

Sie können eine Maus nicht bewegen, aber Sie können sie sperren. Hinweis: Sie müssen requestPointerLock im Click-Ereignis aufrufen.

Kleines Beispiel:

var canvas = document.getElementById('mycanvas');
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock;
canvas.requestPointerLock();

Dokumentation und vollständiges Codebeispiel:

https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API

852400cookie-checkDen Mauszeiger an eine bestimmte Position bewegen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy