Versteckt den Mauszeiger im Leerlauf mit JavaScript

8

Ist es möglich, JavaScript zu verwenden, um das cursor -Attribut auf die Eigenschaft none zu setzen, wenn die Maus für einen bestimmten Zeitraum (z. B. fünf Sekunden) inaktiv ist und es wieder auf auto setzt wieder aktiv?

BEARBEITEN: Mir ist klar, dass none kein gültiger Wert für die Eigenschaft cursor ist. Trotzdem scheinen viele Web-Browser dies zu unterstützen. Darüber hinaus bin ich selbst der Hauptanwender, so dass die Gefahr einer Verwechslung gering ist.

Ich habe zwei Skripte, die etwas Ähnliches tun können:

%Vor%

und

%Vor%

Wenn die Maus länger als fünf Sekunden inaktiv ist, wird die Hintergrundfarbe weiß, und wenn der Cursor bewegt wird, wird der Hintergrund schwarz. Sie funktionieren jedoch nicht, um den Cursor verschwinden zu lassen. Was mich überrascht ist, dass wenn ich den Befehl document.querySelector("body").style.cursor = "none"; in die JavaScript-Konsole setze, es perfekt funktioniert. In den Skripten scheint es nicht zu funktionieren.

Ich habe die obigen Skripte gepostet, so weit ich gekommen bin, um das zum Laufen zu bringen. Ich bitte nicht unbedingt um eine Korrektur für eines der Skripts. Wenn Sie eine effizientere Möglichkeit kennen, den Cursor zu verstecken, teilen Sie ihn bitte.

    
木川 炎星 28.07.2010, 15:06
quelle

5 Antworten

13

In CSS 2 none ist kein gültiger Wert für die cursor -Eigenschaft . Es ist jedoch in CSS 3 gültig.

Andernfalls können Sie möglicherweise einen benutzerdefinierten Cursor verwenden, der von einem einfach transparenten URI geladen wurde.

Ich würde dies jedoch als sehr störend für den Benutzer betrachten, daher würde ich Ihnen nicht empfehlen, das tatsächlich zu tun.

    
Joey 28.07.2010, 15:09
quelle
5

Das Folgende funktioniert für mich in Firefox 3.6.13, solange sich der Cursor über einem tatsächlichen Element befindet, das keinen nicht standardmäßigen Cursor hat (funktioniert also nicht, wenn sich der Cursor über einem Formularelement oder einer Verknüpfung befindet , zum Beispiel), obwohl ich im Allgemeinen empfehle, dies nicht zu tun, weil es nicht standardisiert ist und extrem schlechte Usability.

Nebenbei: Es ist kompatibler, querySelector() nicht zu verwenden, wenn es eine Alternative gibt, z. B. document.body oder document.getElementById() .

%Vor%     
Tim Down 19.12.2010 14:32
quelle
1

In meinen Kiosk-Apps stellen Sie sicher, dass keine "gedrückten" Zeichen verloren gehen, wenn Sie den Bildschirmschoner verlassen (sie werden normalerweise über einen Barcode-Scanner oder einen RFID-Leser an den PC gesendet) und um sicherzustellen, dass der Bildschirm wieder angezeigt wird Bei sofort verwende ich die folgenden Code-Bits zusammen mit einer transparenten Cursor-Datei und deaktiviere alle Bildschirmschoner / Energiesparfunktionen im Host-Betriebssystem. Dies funktioniert in Chrome 12 und wahrscheinlich in vielen anderen Browsern. Ich glaube nicht, dass es einen Chrome-spezifischen Code gibt - es ist einfach am einfachsten, in einen Kiosk-Modus zu starten.

Die schlampigen Bits, die durch die INPUT-Elemente iterieren, werden benötigt, weil diese Formenteile ihren Standardhintergrund (typischerweise Weiß) behalten.

Wenn Sie Bilder, farbigen Text oder andere Objekte verwenden, müssen Sie herausfinden, wie Sie damit umgehen. Ich baue gerade Datenerfassungs-Apps, also ist dort nur schwarzer Text auf dem Bildschirm. Durch Drehen des Seitenhintergrunds wird der gesamte Bildschirm schwarz und verhindert das Einbrennen.

Das könnte und sollte getan werden, indem man verschiedene CSS-Bits über JS anwendet, aber es funktioniert, nun, und es ist alles an einer Stelle im Code, so dass es einfach ist, an einem Ort wie diesem einzufügen.

%Vor%

onkeydown feuert unSS ist im Körper, so dass bei jedem Tastendruck der Timer zurückgesetzt wird.

%Vor%     
Jeremy 20.07.2011 04:28
quelle
1

Dies funktionierte für mich (aus Ссылка ).

Beachten Sie den Verweis auf ein HTML-Element mit ID-Wrapper.

%Vor%     
cby016 25.10.2013 22:48
quelle
0

Es gibt ein jquery-Plugin idletimer , das prüft, ob ein Benutzer inaktiv ist oder nicht.

    
Codler 23.12.2010 16:43
quelle

Tags und Links