Maison  >  Article  >  interface Web  >  Découvrez la solution au clic de souris js déclenchant un événement d'emménagement

Découvrez la solution au clic de souris js déclenchant un événement d'emménagement

php是最好的语言
php是最好的语言original
2018-07-24 15:33:443198parcourir

Les événements de souris sont déclenchés lorsque le bouton de la souris est enfoncé (bouton gauche ou droit). Ne peut pas être déclenché via le clavier. Quel est l’ordre dans lequel les événements de la souris sont déclenchés ? Des exemples détaillés sont donnés ci-dessous,

Événements de souris

9 événements de souris sont définis dans les événements de niveau DOM3.

  • mousedown : Déclenché lorsque le bouton de la souris est enfoncé (bouton gauche ou droit). Ne peut pas être déclenché via le clavier.

  • mouseup : Déclenché lorsque le bouton de la souris est relâché et apparaît. Ne peut pas être déclenché via le clavier.

  • clic : Déclenché en cliquant sur le bouton gauche de la souris ou en appuyant sur la touche Entrée. Ceci est important pour garantir l'accessibilité, ce qui signifie que le gestionnaire d'événements onclick peut être exécuté à la fois par le clavier et la souris.

  • dblclick : Déclenché lorsque le bouton gauche de la souris est double-cliqué.

  • mouseover : Déplacez la souris sur l'élément cible. Lancé lorsque la souris se déplace sur son élément descendant.

  • mouseout : La souris sort de l'élément cible.

  • mouseenter : Déclenché lorsque la souris se déplace dans la plage de l'élément Cet événement ne fait pas de bulles , c'est-à-dire qu'il ne sera pas déclenché lorsque la souris se déplace. sur ses éléments descendants.

  • mouseleave : Déclenché lorsque la souris sort de la plage de l'élément, Cet événement ne fait pas de bulles, c'est-à-dire qu'il ne se déclenchera pas lorsque la souris se déplace vers son éléments descendants.

  • mousemove : Déclenché en continu lorsque la souris se déplace à l'intérieur de l'élément. Ne peut pas être déclenché via le clavier.

note:

L'événement click sera déclenché uniquement lorsque les événements mousedown et mouseup seront déclenchés successivement sur un élément. L'événement dblclick sera déclenché uniquement lorsque deux événements click seront déclenchés l'un après l'autre.

Si mousedown ou mouseup est annulé, l'événement de clic ne sera pas déclenché. Si l'événement click est annulé directement ou indirectement, l'événement dblclick ne sera pas déclenché.

1. L'ordre de déclenchement des événements

Exemple : Jetez un œil aux événements déclenchés ci-dessus en double-cliquant sur le bouton.

<input id="btn" type="button" value="click"/><script>
    var btn = document.getElementById("btn");
    btn.addEventListener("mousedown",function(event){
        console.log("mousedown");
    },false);
    btn.addEventListener("mouseup",function(){
        console.log("mouseup");
    },false);
    btn.addEventListener("click", function () {
        console.log("click");
    },false);
    btn.addEventListener("dblclick", function () {
        console.log("dblclick");
    },false);</script>

Afficher le code

2. La différence entre la saisie par la souris et le survol de la souris

Différence :

L'événement mouseover fera une bulle, ce qui signifie qu'il sera déclenché lorsque la souris se déplacera sur ses éléments descendants.

L'événement mouseenter ne fait pas de bulle, ce qui signifie qu'il ne se déclenchera pas lorsque la souris sera déplacée sur ses éléments descendants.

Exemple :

<!DOCTYPE html><html><head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        #outer{            position: absolute;            width: 200px;            height: 200px;            top:0;            left: 0;            bottom:0;            right: 0;            margin: auto;            background-color: pink;        }
        #inner{            position: absolute;            width: 100px;            height:100px;            top:50%;            left:50%;            margin-left: -50px;            margin-top: -50px;;
            background-color: orange;            text-align: center;            line-height: 100px;        }
        #outer,#inner{            border-radius:50%;        }
    </style>
    <script src="jquery-2.1.1.min.js"></script></head><body><body>
    <p id="outer">
            <p id="inner">
            </p>
    </p></body><script>
    var parentp = document.getElementById("outer");
    parentp.addEventListener("mouseover", function () {
         console.log("父p的mouseover事件被触发");
    },false);    //parentp.addEventListener("mouseenter", function () {
    //    console.log("父p的mouseenter事件被触发");
    //},false);
    //parentp.addEventListener("mouseout", function () {
    //    console.log("父p的mouseout事件被触发");
    //},false);
    //parentp.addEventListener("mouseleave", function () {
    //    console.log("父p的mouseleave事件被触发");
    //},false);</script></body></html>

Afficher le code

remarque :

mouseover correspond à mouseout, mouseenter correspond à mouseleave. L'effet peut être vu en décommentant le code ci-dessus.

L'API de survol dans jquery est une combinaison de mouseenter et mouseleave.

3. Boutons gauche et droit de la souris

<script type="text/javascript">document.onmousedown=function (ev){
    var oEvent = ev||event; //IE浏览器直接使用event或者window.event得到事件本身。
    alert(oEvent.button);// IE下鼠标的 左键是1 ,  右键是2   ff和chrome下 鼠标左键是0  右键是2};</script>

Recommandations associées :

JavaScript Résumé de l'apprentissage de l'événement (2) gestionnaire d'événements js

Résumé de l'apprentissage de l'événement JavaScript (4) membres publics (propriétés et méthodes) de l'événement

Résumé de l'apprentissage de l'événement JavaScript (3) objet d'événement js

Résumé de l'apprentissage de l'événement JavaScript (1) flux d'événements

Vidéo : événement de passage de la souris JavaScript ( onmouseover) - tutoriel javascript pour débutant

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn