マウスオーバーとmouseenter、mouseoutとmouseleaveの違い



Difference Between Mouseover



紹介

考えてみれば、来るでしょう。たとえば、カルーセルを実行する場合、マウスがフロントボタンとリアボタンに移動したときにタイマーをクリアします。私のdomの構造はこんな感じです。

判定



そこで、関数をコンテナーにバインドしました。上に移動するとタイマー機能をクリアし、移動するとタイマー機能を上げます。ドットコンテナにも同じ関数をバインドしました。私の顔の結果を説明させてください。



  1. buttuonによってマウスがカルーセル画像に引き込まれていない場合の通常の停止と移動

  2. マウスがボタンに移動し、タイマーがクリアされず、ストロークが無効になります。

  3. ドットアイコンの上にマウスを置き、タイマーをクリアし、ドットを描画しますが、まだコナティナーではありません。タイマーを増やします。 。 。うーん



  4. その時、私はカルーセルの姿をばかげた帽子のように見ました。いくつかの動き。 。 。

原理

実際、本質は、私の関数が正しくバインドされていないことですが、基本的な属性の熟練していない習得でもあります。

Mouseoverイベント:mouseoverイベントは、マウスポインターが選択された要素を通過するか、その子要素を通過するかに関係なく発生します。

Mouseenterイベント:mouseenterイベントは、マウスポインタが選択した要素を通過したときにのみ発生します。

Mouseoutイベント:mouseoutイベントは、マウスポインターが選択された要素または子要素のどちらを離れたかに関係なく発生します。

Mouseleaveイベント:mouseleaveイベントは、マウスポインタが選択した要素を離れたときにのみ発生します。

デモになる

<html lang='en'> <head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Documenttitle> <style> .big { width: 500px height: 500px background: red } .small { width: 100px height: 100px background: blue } style> head> <body> <div class='big'> <div class='small'> div> div> <br> <br> <br> <br> <br> <br> <br> <br> <br> <div class='big'> <div class='small'> div> div> <script> // mouseover mouseout var big = document.getElementsByClassName('big')[0], big2 = document.getElementsByClassName('big')[1] big.addEventListener('mouseover', function() { console.log(1) }) big.addEventListener('mouseout', function() { console.log(2) }) // mouseenter mouseleave big2.addEventListener('mouseenter', function() { console.log(3) }) big2.addEventListener('mouseleave', function() { console.log(4) }) script> body> html>

デモ

あなたがしていることを言うのは醜いです。ねえ。 。 。デモを作成しました。

現象

  1. マウスオーバーおよびマウスアウト用。スライドインするとconsole.log(1)にバインドし、入力するとconsole.log(2)にバインドします。

外側から赤い領域に移動すると、1がトリガーされることはよく理解されています。青の領域に移動すると、赤に対して移動したため、終了機能がトリガーされて2が出力されます。ただし、青の場合、彼は再び入ります。したがって、トリガーが再度印刷されます。

これが当時私が遭遇した主な問題です。 。 。うーん

同様に、私が引っ越すとき

最初に青を残します、2。赤1を入力し、赤2を残します。

変数を設定したい場合は、この領域に入るときに1を追加するとします。これが事実です。 。何度も追加されますか? 。 。 。 。 。 。

  1. mouseenterとmouseleaveの場合、これははるかに簡単です。

一度だけトリガーします。

同様に、3が初めて入ります。

レビュー

Mouseoverイベント:mouseoverイベントは、マウスポインターが選択した要素を通過するか、その子要素を通過するかに関係なく発生します。

Mouseenterイベント:mouseenterイベントは、マウスポインタが選択した要素を通過したときにのみ発生します。

Mouseoutイベント:mouseoutイベントは、マウスポインターが選択された要素または子要素のどちらを離れたかに関係なく発生します。

Mouseleaveイベント:mouseleaveイベントは、マウスポインタが選択した要素を離れたときにのみ発生します。

ライター&コンタクト

{ 'name':'Jontyy' , 'email': ' root@xxxxx' }