2013-10-01 8 views
5

Mir ist bewusst, dass der Mauszeiger in den meisten Browsern (neueste Generation) ausgeblendet wird, wenn Sie einen beliebigen Schlüssel wie 'A' oder Space eingeben. Dadurch kann der Benutzer sehen, was er eingibt. Der Cursor wird wieder sichtbar, sobald Sie die Maus für ein Pixel bewegen.Verhindern, dass sich der Cursor im Browser versteckt, nachdem die Taste gedrückt wurde

Jetzt kommt hier das Problem - Dies passiert überall in einem Browser, auch wenn ich ein Nicht-Eingabe-Element wie ein Div oder das solche fokussiert habe. Ich möchte jedoch nicht, dass der Browser meinen Cursor versteckt, nachdem der Benutzer eine Taste gedrückt hat, da ich Tasten als Tastenkombinationen verwende.

Die Frage ist also - gibt es eine Möglichkeit oder einen Trick oder irgendetwas, um dies zu verhindern und/oder den Cursor nach dem Tastenaufbau automatisch wieder erscheinen zu lassen?

Ich habe verschiedene "Hacks" über das Internet ausprobiert wie unsichtbare divs etc. aber alles ohne Erfolg.

EDIT: Wie befragte, ich erlebt dieses Verhalten auf jedem Browser (Chrome neuesten, Firefox neuesten, Safari neuesten) auf neuesten MAC-OS-X.

+3

funktioniert nicht mit Chrome oder Firefox unter Linux/Ubuntu passieren. Sind Sie sicher, dass Sie kein Plugin installiert haben? Oder aktiviert eine Funktion Ihres Maustreibers? –

+1

Ich habe versucht, das beschriebene Verhalten zu reproduzieren, scheint aber nicht für mich zu funktionieren. Windows7 + neuesten Chrome oder neuesten Firefox. Können Sie die von Ihnen verwendete Umgebung angeben? – 4ndrew

+0

Bestätigt in Chrome unter Mac OS X 10.8.4 –

Antwort

2

Ich dachte nur eine mögliche Lösung für dieses Problem, aber es wird sehr schwer sein, dies in einer Art und Weise zu tun, die nicht störend ist die Benutzer:

  1. Jedes Mal, wenn der Cursor bewegt, speichern seine Position
  2. Wenn das Dokument eine keyup beobachtet, zeigen ein Bild eines Cursors an den genauen Koordinaten, wo der aktuelle Cursor zuletzt gesehen wurde (es ist immer noch da, aber versteckt)
  3. Wenn die aktuelle Cursor wieder bewegt, verstecken das Bild (tatsächlich, fusionieren diese Funktion mit 1.)

Das Problem geht hier zu wissen, zu welchen Cursor-Bild zu zeigen. Sie müssten zuerst feststellen, ob sich der Benutzer auf einem Mac (oder einem anderen Betriebssystem, das den Cursor versteckt) befindet, aber auch, welcher Cursor angezeigt werden soll, abhängig davon, was Sie gerade bewegen. Dies bedeutet, dass Sie für jedes Element, das Sie in der Schwebe halten, auch feststellen müssen, welcher Cursor angezeigt wird und ein Bild desselben Cursors anzeigen.

Sie können die Grundlagen/Voreinstellungen durch Hinzufügen einiger CSS-Regeln abdecken, die das Schweben von Links und Eingaben abdecken (pointer bzw. text), aber was ist, wenn der Benutzer benutzerdefinierte Cursor in seinem Betriebssystem definiert?

Ich habe noch keinen Code ausprobiert, das ist nur ein Konzept, das in der Theorie funktionieren sollte, lassen Sie mich wissen, wenn Sie mehr Hilfe benötigen, aber ehrlich gesagt würde ich davon abraten, dies zu erreichen. Es wird mehr Ärger bringen, als es löst, imo.

-edit- Hier ist ein Proof of Concept: http://jsfiddle.net/4rKMx/2/

+0

Ich benutze einen benutzerdefinierten Cursor. Wie würde Ihre "Lösung" damit umgehen? –

+0

Nicht. Das ist es, was ich in dieser Antwort klar auslege, weshalb ich es nicht empfehle. Ich wollte nur so vollständig sein, um darauf hinzuweisen, dass es technisch möglich ist, dies zu tun (obwohl es keine perfekte Lösung ist) –

+0

Das ist eine wirklich gute Idee! Das einzige Problem, das ich tatsächlich habe, ist, dass meine Cursor im * .cur Format sind, so dass sie nicht direkt mit einem Bild gerendert werden können. – anderswelt

4

Dies ist kein Browserverhalten, sondern das Verhalten des Betriebssystems und insbesondere das Mac-Verhalten. Der Cursor wird nicht nur ausgeblendet, wenn Sie den Browser eingeben, sondern in jeder Anwendung auf Ihrem Mac.

Das bedeutet, dass der Browser keine Kenntnis oder Kontrolle über den Cursor hat, weil er von einer höheren Ebene verborgen ist. Sie können den Cursor z. B. mit CSS oder JavaScript ändern, aber er wird erst angezeigt, wenn Sie ihn verschieben. Sie können den Cursor nicht wirklich mit JavaScript bewegen, aber selbst wenn Sie daran zweifeln könnten, würde es helfen, weil das Betriebssystem kein Signal von der Bewegung des Cursors erhalten hat.

auf diese Frage auf apple.stackexchange.com Siehe auch: How do I disable hiding of the mouse pointer while typing text?

Verwandte Themen