12
votes

Détecter le type de curseur

Je veux le code JavaScript pour détecter le type de curseur.

Par exemple, lorsque le curseur survole dans Textarea, il passe de la valeur par défaut au texte.


3 commentaires

Essayiez-vous de détecter le type de curseur actuel ou de la définir vous-même? Si vous essayiez de la définir, il y a une foule d'autres questions qui sont duplicats et cela sera fermé. (Si j'étais vous, je changerais de l'intention de la question afin qu'il souhaite détecter le type de curseur actuel de sorte que ce n'est pas simplement un autre duplicata de paramétrage du type de curseur, mais le choix est totalement à vous :)


Mais je ne veux pas régler le type, mais l'obtenir n'importe où dans la page ..


Dites-nous pourquoi vous voulez faire cela. Je suppose qu'il y a une voie plus facile à votre solution. FWIW, le curseur ne fait pas partie du DOM, de sorte que vous n'allez pas être en mesure d'obtenir beaucoup d'informations. À propos du mieux que vous puissiez faire, c'est comprendre sa position et faire des hypothèses de cela.


4 Réponses :


0
votes

Je pense que vous pouvez lire la propriété Cursor code> CSS comme vous pouvez le définir, mais vous devez le faire à partir d'un élément spécifique, car Afaik il n'y a aucun moyen de simplement lire le type de curseur de la fenêtre. ou objet de document. Après cette logique, pour obtenir le type de curseur actuel, vous devez trouver l'élément actuel de la souris et lisez son curseur code> CSS. Cependant, vous devez constamment vérifier pour voir si le curseur a changé, ce qui est lent et est sujet à une erreur (en règle générale, essayez presque toujours d'essayer de mettre votre code dans un gestionnaire d'événements pour réagir à quelque chose au lieu de vérifier constamment si c'est déjà arrivé et mettant votre code dans cette fonction sa fonction plus logique, efficace, plus robuste et claire.)

mais l'idée de détecter le type de curseur me fascine toujours et si quelqu'un sait comment j'aimerais entendre parler de ça . : D p>


comme une solution alternative, plutôt que de lire le type de curseur, pourquoi ne définissez-vous pas un gestionnaire d'événements pour quand elle entre dans un élément qui le changerait? Ce serait beaucoup moins sujet aux erreurs et probablement plus directs, car je ne pense pas que vous vous souciez tellement de souci du curseur, mais si la souris est entrée dans un élément spécifique. P>

$("#textbox").mouseover( function() { 
    //I know the cursor has changed because it is now in a textbox
});


2 commentaires

Mais si aucune règle CSS set, ce que je peux faire!


@mkotwd Si aucune règle CSS n'est définie, ce sera le curseur standard - pour textboxes ceci est curseur: texte;



3
votes

Vous pouvez le faire, mais ce n'est pas joli et sera probablement assez lent en fonction du nombre d'éléments que vous avez sur votre page.

$('*').mouseenter(function(){
    var currentCursor = $(this).css('cursor') ;

    //do what you want here, i.e.
    console.log( currentCursor );
});


0 commentaires

1
votes

J'ai une belle extension de jQuery parfait pour ce type de chose à cet essentiel:

https://gist.github.com/2206057

Pour l'utiliser, faites simplement quelque chose comme: xxx

aussi xxx

doit également mentionner, Si vous soumettez plusieurs éléments tels que $ ("# eleid1, .elementswiththisclass") pour "position" et "ishover" puis il retournera un tableau contenant des objets tels que: xxx


0 commentaires

2
votes

Vous pouvez détecter le type de curseur à l'aide de JavaScript

comme p> xxx pré>

et le code JavaScript doit ressembler à ceci p> xxx pré >

Vous pouvez également consulter ce jsfiddle pour la détection de Curseur JS P>

Ce qui précède est le code JQuery écrit, vous pouvez également utiliser le Vanilla JS pour que vous ayez juste besoin de le changer en p> xxx pré>

et le JavaScript devrait ressembler à ceci p >

function detect_cursor() {
   alert("test");   
   var ctl = document.getElementById('sample_text');
   var startPos = ctl.selectionStart;
   var endPos = ctl.selectionEnd;
   alert(startPos + ", " + endPos);
};


1 commentaires

C'est pour le curseur du clavier. L'OP est de demander le curseur souris .