Je souhaite masquer le curseur lors de l'affichage d'une page Web destinée à afficher des informations dans un bâtiment. Il n'a pas besoin d'être interactif du tout. J'ai essayé avec la propriété de curseur et une image de curseur transparente mais je ne l'ai pas fait fonctionner.
Est-ce que quelqu'un sait si cela peut être fait? Je suppose que cela peut être considéré comme une menace pour la sécurité d'un utilisateur qui ne peut pas savoir où il clique, donc je ne suis pas très optimiste ... Merci!
la source
1x1
png transparent px ou 1% transparent png.document.body.style.cursor = 'auto'
.API de verrouillage de pointeur
Bien que la
cursor: none
solution CSS soit définitivement une solution de contournement solide et facile , si votre objectif réel est de supprimer le curseur par défaut pendant que votre application Web est utilisée, ou d'implémenter votre propre interprétation du mouvement brut de la souris (pour les jeux FPS, par exemple), vous pouvez souhaitez plutôt envisager d'utiliser l' API Pointer Lock .Vous pouvez utiliser requestPointerLock sur un élément pour supprimer le curseur et rediriger tous les
mousemove
événements vers cet élément (que vous pouvez ou non gérer):Pour libérer le verrou, vous pouvez utiliser exitPointerLock :
Notes complémentaires
Pas de curseur, pour de vrai
Il s'agit d'un appel API très puissant. Il rend non seulement votre curseur invisible, mais il supprime en fait le curseur natif de votre système d'exploitation . Vous ne pourrez pas sélectionner de texte ni faire quoi que ce soit avec votre souris (sauf en écoutant certains événements de souris dans votre code) tant que le verrouillage du pointeur ne sera pas libéré (soit en utilisant
exitPointerLock
ou en appuyant sur ESCdans certains navigateurs).Autrement dit, vous ne pouvez pas quitter la fenêtre avec votre curseur pour qu'elle s'affiche à nouveau, car il n'y a pas de curseur.
Restrictions
Comme mentionné ci-dessus, il s'agit d'un appel d'API très puissant, et il n'est donc permis de faire qu'en réponse à une interaction directe de l'utilisateur sur le Web, comme un clic; par exemple:
De plus,
requestPointerLock
ne fonctionnera pas à partir d'un baciframe
à sable sauf si leallow-pointer-lock
autorisation est définie.Notifications utilisateur
Certains navigateurs demanderont à l'utilisateur une confirmation avant que le verrouillage ne soit engagé, d'autres afficheront simplement un message. Cela signifie que le verrouillage du pointeur peut ne pas s'activer immédiatement après l'appel. Cependant, l'activation réelle du verrouillage du pointeur peut être écoutée en écoutant l'
pointerchange
événement sur l'élément sur lequel arequestPointerLock
été appelé:La plupart des navigateurs n'afficheront le message qu'une seule fois, mais Firefox spammera occasionnellement le message à chaque appel. AFAIK, cela ne peut être contourné que par les paramètres utilisateur, voir Désactiver la notification de verrouillage du pointeur dans Firefox .
Écouter les mouvements bruts de la souris
L'API Pointer Lock supprime non seulement la souris, mais redirige à la place les données brutes de mouvement de la souris vers l'élément
requestPointerLock
appelé. Cela peut être écouté simplement en utilisant l'mousemove
événement, puis en accédant aux propriétésmovementX
etmovementY
de l'objet événement:la source
Je l'ai fait avec transparent * .cur 1px à 1px, mais cela ressemble à un petit point. :( Je pense que c'est la meilleure chose que je puisse faire pour plusieurs navigateurs. CSS2.1 n'a pas de valeur 'none' pour la propriété 'cursor' - il a été ajouté dans CSS3. C'est pourquoi il n'est pas utilisable partout.
la source
Si vous voulez le faire en CSS:
la source
!important
.Pour tout le document html, essayez ceci
Ou si certains css écrasent votre curseur: aucune utilisation! Important
la source
Si vous souhaitez masquer le curseur dans toute la page Web, l'utilisation
body
ne fonctionnera que si elle couvre toute la page visible, ce qui n'est pas toujours le cas. Pour vous assurer que le curseur est caché partout dans la page, utilisez:Pour le réactiver:
L'analogue avec la notation CSS statique est dans la réponse par Pavel Salaquarda (en substance:
html * {cursor:none}
)la source