2013-10-01 7 views
5

Mam świadomość, że w większości przeglądarek (najnowszej generacji) kursor myszy zostanie ukryty po wpisaniu dowolnego klawisza, takiego jak "A" lub spacja. Pozwoli to użytkownikowi zobaczyć, co wpisuje. Kursor wróci widoczny po obróceniu myszy o piksel.Zapobieganie ukrywaniu kursora w przeglądarce po naciśnięciu klawisza.

Teraz pojawia się problem - dzieje się tak wszędzie w przeglądarce, nawet gdy ustawiłem element nie-wejściowy, taki jak element div lub taki. Nie chcę jednak, aby przeglądarka ukrywała kursor po naciśnięciu klawisza, ponieważ używam klawiszy jako skrótów.

Pytanie brzmi: czy istnieje jakiś sposób lub podstęp lub cokolwiek, co może temu zapobiec i/lub automatyczne ponowne pojawienie się kursora po naciśnięciu klawisza?

Próbowałem różnych "hacki" w Internecie jak niewidzialne div itp., Ale wszystko bez powodzenia.

EDYCJA: Podważane, mam takie zachowanie w każdej przeglądarce (najnowsze Chrome, najnowsze Firefox, najnowsze Safari) na najnowszym MAC-OS-X.

+3

nie dzieje z Chrome lub Firefoksa na Linuksie/Ubuntu. Czy na pewno nie masz zainstalowanej wtyczki? Lub włączyć funkcję sterownika myszy? –

+1

Próbowałem odtworzyć opisane zachowanie, ale wydaje mi się, że nie działa ono dla mnie. Windows7 + najnowszy chrome LUB najnowszy Firefox. Czy możesz określić środowisko, którego używasz? – 4ndrew

+0

Potwierdzone w Chrome na Mac OS X 10.8.4 –

Odpowiedz

2

Pomyślałem o możliwym rozwiązaniem, ale to będzie bardzo trudno to zrobić w taki sposób, że nie jest irytujące użytkownik:

  1. Gdy kursor przesuwa się, zapisz to pozycja
  2. Gdy dokument zauważa się keyUp, pokaż obraz kursorem na dokładnych współrzędnych, gdzie rzeczywiste kursor widziano ostatni (to nadal istnieje, ale ukryty)
  3. Gdy rzeczywisty kursor porusza się ponownie ukryć obraz (w rzeczywistości, łączenie tej funkcji z 1.)

Problemem tutaj będzie wiedział, co kursor na zdjęcie, aby pokazać. Najpierw musisz wykryć, czy użytkownik jest na komputerze Mac (lub innym systemie operacyjnym, który ukrywa kursor), ale także, jaki kursor powinien być wyświetlany w zależności od tego, co masz na myśli. Oznacza to, że dla każdego poruszającego się elementu musisz również wykryć, który kursor jest pokazywany i wyświetlać obraz tego samego kursora.

Możesz opisać podstawy/ustawienia domyślne, dodając kilka reguł css, które obejmują unoszące się linki i wejścia (odpowiednio: pointer i text), ale co zrobić, jeśli użytkownik używa niestandardowych kursorów zdefiniowanych w jego systemie operacyjnym?

Nie próbowałem jeszcze żadnego kodu, to tylko koncepcja, która powinna działać teoretycznie, więc daj mi znać, jeśli potrzebujesz więcej pomocy, ale szczerze mówiąc odradzam próbowanie tego. To przyniesie więcej kłopotów, niż rozwiązuje, imo.

-edit- Oto Proof of Concept: http://jsfiddle.net/4rKMx/2/

+0

Używam niestandardowego kursora. Jak poradzi sobie z tym twoje "rozwiązanie"? –

+0

Nie. To właśnie jasno stwierdzam w tej odpowiedzi, dlatego nie polecam jej. Chciałem tylko wykazać, że technicznie rzecz biorąc, jest to możliwe (nawet jeśli nie jest to idealne rozwiązanie). –

+0

To naprawdę dobry pomysł! Jedyny problem, jaki mam, to to, że moje kursory są w formacie * .cur, więc nie można ich bezpośrednio renderować za pomocą obrazu. – anderswelt

4

Nie jest to zachowanie przeglądarki, ale zachowanie systemu operacyjnego, a zwłaszcza zachowanie komputera Mac. Kursor nie tylko się ukryje, jeśli wpiszesz w przeglądarce, ale w dowolnej aplikacji na komputerze Mac.

Oznacza to, że przeglądarka nie ma wiedzy ani kontroli nad kursorem, ponieważ jest ukryta przed wyższym poziomem. Możesz zmienić kursor za pomocą CSS lub JavaScript na przykład, ale nadal nie będzie wyświetlany, dopóki go nie przeniesiesz. W rzeczywistości nie można przesuwać kursora za pomocą JavaScript, ale nawet jeśli mógłbym nadal wątpić, to pomogłoby, ponieważ system operacyjny nie otrzymał sygnału przesunięcia kursora.

odnoszą się również do tej kwestii na apple.stackexchange.com: How do I disable hiding of the mouse pointer while typing text?

Powiązane problemy