Saya ingin menyembunyikan kursor ketika menampilkan halaman web yang dimaksudkan untuk menampilkan informasi di gedung gedung. Tidak harus interaktif sama sekali. Saya mencoba dengan properti kursor dan gambar kursor transparan tetapi saya tidak membuatnya bekerja.
Adakah yang tahu kalau ini bisa dilakukan? Saya kira ini dapat dianggap sebagai ancaman keamanan bagi pengguna yang tidak tahu di mana dia mengklik, jadi saya tidak terlalu optimis ... Terima kasih!
javascript
html
css
yeyeyerman
sumber
sumber
1x1
px png transparan atau png transparansi 1%.document.body.style.cursor = 'auto'
.Pointer Lock API
Sementara
cursor: none
solusi CSS pasti padat dan mudah solusi , jika tujuan Anda yang sebenarnya adalah untuk menghilangkan kursor default saat aplikasi web Anda sedang digunakan, atau menerapkan Anda sendiri interpretasi gerakan mouse baku (untuk game FPS, misalnya), Anda mungkin ingin mempertimbangkan untuk menggunakan Pointer Lock API sebagai gantinya.Anda bisa menggunakan requestPointerLock pada suatu elemen untuk menghapus kursor, dan mengalihkan semua
mousemove
peristiwa ke elemen itu (yang mungkin atau mungkin tidak Anda tangani):Untuk melepaskan kunci, Anda bisa menggunakan exitPointerLock :
Catatan tambahan
Tanpa kursor, nyata
Ini adalah panggilan API yang sangat kuat. Ini tidak hanya membuat kursor Anda tidak terlihat, tetapi sebenarnya menghapus kursor asli sistem operasi Anda . Anda tidak akan dapat memilih teks, atau melakukan apa pun dengan mouse Anda (kecuali mendengarkan beberapa peristiwa mouse dalam kode Anda) sampai kunci penunjuk dilepaskan (baik dengan menggunakan
exitPointerLock
atau menekan ESCbeberapa browser).Artinya, Anda tidak dapat meninggalkan jendela dengan kursor untuk ditampilkan kembali, karena tidak ada kursor.
Batasan
Seperti yang disebutkan di atas, ini adalah panggilan API yang sangat kuat, dan karenanya hanya diperbolehkan untuk dibuat sebagai respons terhadap beberapa interaksi pengguna langsung di web, seperti klik; sebagai contoh:
Selain itu,
requestPointerLock
tidak akan berfungsi dari kotak pasiriframe
kecualiallow-pointer-lock
izin ditetapkan.Pemberitahuan pengguna
Beberapa browser akan meminta pengguna untuk konfirmasi sebelum kunci terkunci, beberapa hanya akan menampilkan pesan. Ini berarti kunci penunjuk mungkin tidak aktif segera setelah panggilan. Namun, aktivasi sebenarnya dari penguncian pointer dapat didengarkan dengan mendengarkan
pointerchange
acara pada elemen yangrequestPointerLock
dipanggil:Sebagian besar browser hanya akan menampilkan pesan satu kali, tetapi Firefox terkadang akan mengirim spam pesan pada setiap panggilan. AFAIK, ini hanya bisa diselesaikan dengan pengaturan pengguna, lihat Menonaktifkan pemberitahuan kunci-penanda di Firefox .
Mendengarkan gerakan mouse mentah
Pointer Lock API tidak hanya menghapus mouse, tetapi juga mengarahkan ulang data pergerakan mouse mentah ke elemen
requestPointerLock
yang dipanggil. Ini dapat didengarkan hanya dengan menggunakanmousemove
acara, lalu mengaksesmovementX
danmovementY
properti pada objek acara:sumber
Saya melakukannya dengan transparan * .cur 1px ke 1px, tetapi sepertinya titik kecil. :( Saya pikir itu hal lintas-browser terbaik yang bisa saya lakukan. CSS2.1 tidak memiliki nilai 'tidak ada' untuk properti 'kursor' - itu ditambahkan dalam CSS3. Itulah mengapa itu bisa diterapkan tidak di mana-mana.
sumber
Jika Anda ingin melakukannya dalam CSS:
sumber
!important
.Untuk seluruh dokumen html coba ini
Atau jika beberapa css menimpa kursor Anda: tidak ada gunanya! Penting
sumber
Jika Anda ingin menyembunyikan kursor di seluruh halaman web, menggunakan
body
tidak akan berfungsi kecuali jika menutupi seluruh halaman yang terlihat, yang tidak selalu terjadi. Untuk memastikan kursor disembunyikan di mana-mana di halaman, gunakan:Untuk mengaktifkannya kembali:
Analog dengan notasi CSS statis dalam jawaban oleh Pavel Salaquarda (pada intinya:
html * {cursor:none}
)sumber