JavaScriptノートをよく勉強する(十一)--イベントのタイプ

8615 ワード

技術交流を歓迎します。QQ:138986722


イベントのタイプ:

は、イベントをトリガする事象およびイベントが発生するオブジェクトに応じて、ブラウザで発生するイベントをいくつかのタイプに分けることができる.DOM規格では、以下のイベントのセットが定義されています.
    
  • マウスイベント:ユーザーがマウス操作を使用するとトリガーされます.
  • キーボードイベント:ユーザーがキーボードをたたくと、入力時にトリガーされます.
  • HTMLイベント:ウィンドウが変動したり、特定のクライアント-サービス側のインタラクションが発生したりしたときにトリガーされます.
  • 突然変異イベント:下層のDOM構造が変化するとトリガーされる.

  •     

    1、マウスイベント

  • click--ユーザーがマウスの左ボタンをクリックしたときに発生します(右ボタンも押すと発生しません).ボタンにフォーカスし、車をたたくとイベントがトリガーされます.
  • dblclick--ユーザーがマウスの左ボタンをダブルクリックしたときに発生します(右ボタンも押された場合は発生しません).
  • mousedown--ユーザーが任意のマウスボタンをクリックしたときに発生します.
  • mouseout--マウスポインタがエレメント上にあり、ユーザーがエレメントの境界から移動しようとしているときに発生します.
  • mouseover--マウスがある要素を移動し、別の要素に移動したときに発生します.
  • mouseup--ユーザーがいずれかのボタンを離すと発生します.
  • mousemove--マウスがある要素で発生し続けます.

  •     
    <html>
      <head>
        <title>    </title>
    	<script type="text/javascript">
    		function testEvent(oEvent){
    			var oText = document.getElementById("textId"); 
    			oText.value += "
    "+oEvent.type; } </script> </head> <body> <div style="width: 100px; height: 100px; background-color: red;" onclick="testEvent(event);" ondblclick="testEvent(event);" onmouseover="testEvent(event);" onmousedown="testEvent(event);" onmousemove="testEvent(event);" onmouseout="testEvent(event);" onmouseup="testEvent(event);" > </div> <br/> <textarea id="textId" rows="30" cols="100"></textarea> <br/> </body> </html>

    mouseoverとmouseoutイベントを使用することは、ページ上の何かの外観を変更する方法であり、次のimgのような流行の方法です.これは非常に簡単なテクニックですが、よく使われています.
        
        

    1.1イベントの属性

    各マウスイベントは、次のeventオブジェクトのプロパティに値を入力します.
  • 座標属性(例えばclientXやclientYなど);
  • typeプロパティ(イベントのタイプ);
  • target(DOM)またはsrc Element(IE)属性;
  • buttonプロパティ(mousedown、mouseover、mouseout、mousemove、mouseupイベントのみ).
  • <html>
      <head>
        <title>    </title>
    	<script type="text/javascript">
    		function testEvent(oEvent){
    			var oText = document.getElementById("textId"); 
    			oText.value += "
    "+oEvent.type; oText.value += "
    at("+oEvent.clientX+","+oEvent.clientY+") "; oText.value += "
    at("+oEvent.screenX+","+oEvent.screenY+") "; oText.value += "
    button down is "+oEvent.button; var keys = []; if(oEvent.shiftKey){ keys.push("Shift"); } if(oEvent.ctrlKey){ keys.push("Ctrl"); } if(oEvent.altKey){ keys.push("Alt"); } oText.value += "
    keys down are " +keys; } </script> </head> <body> <div style="width: 100px; height: 100px; background-color: red;" onclick="testEvent(event);" ondblclick="testEvent(event);" onmouseover="testEvent(event);" onmousedown="testEvent(event);" onmousemove="testEvent(event);" onmouseout="testEvent(event);" onmouseup="testEvent(event);" > </div> <br/> <textarea id="textId" rows="30" cols="100"></textarea> <br/> </body> </html>

    これらのプロパティには、マウスイベントが発生したばかりの情報が表示されます.

    1.2手順

    clickイベントがトリガーされる前に、mousedownイベントが発生し、mouseupイベントが発生します.同様に、dblclickイベントをトリガーするには、同じターゲットで次のイベントを順番に発生します.
  •     mousedown;
  •     mouseup;
  •     click;
  •     mousedown;
  •     mouseup;
  •     click;
  •     dblclick;

  • マウスを移動してあるオブジェクトから別のオブジェクトに入ると、先に発生するイベントはmouseout(マウスが移動したオブジェクト)です.次に、両方のオブジェクトでmousemoveイベントがトリガーされます.最後に、マウスが入ったオブジェクトでmouseoverイベントをトリガーします.
        
        

    2キーボードイベント

    キーボードイベント→ユーザによるキーボードの動作開始.次のキーボードイベントがあります.
  • keydown--ユーザーがキーボードでキーを押したときに発生します.あるボタンをずっと押していると、それは絶えずトリガーされます(Operaブラウザを除く).
  • keypress--ユーザーがボタンを押して文字を生成するときに発生します(つまり、Shift、Alt、Ctrlのようなキーにかかわらず).キーを押し続けると、それは発生し続けます.
  • keyup--ユーザーが押しているボタンを解放したときに発生します.
  • <html>
      <head>
        <title>    </title>
    	<script type="text/javascript">
    		function testEventText(oEvent){
    				var oText = document.getElementById("textId"); 
    				oText.value += "
    "+oEvent.type; } </script> </head> <body> <textarea id="textId" rows="30" cols="100"></textarea> <br/> <textarea id="textKeyId" onkeydown="testEventText(event);" onkeypress="testEventText(event);" onkeyup="testEventText(event);"  rows="30" cols="100"></textarea> <br/> </body> </html>

    従来の要素はキーボードイベントをサポートしていますが、テキストボックスに文字を入力すると、これらのイベントが最も簡単に表示されます.    

    2.1イベントのプロパティ

  • keyCode属性;
  • charCode属性(DOMのみ);
  • target(DOM)またはsrc Element(IE)属性;
  • shitKey、ctrlKey、altKey、metaKey(DOM)プロパティ;

  • 注意Shift、Ctrl、AltまたはMetaキーを押すと、対応する属性がTrueに設定されているほか、keydownイベントが発生します.テスト:
    <html>
      <head>
        <title>    </title>
    	<script type="text/javascript">
    		function testEventText(oEvent){
    				var oText = document.getElementById("textId"); 
    				oText.value += "
    "+oEvent.type; oText.value += "
    keyCode is " + oEvent.keyCode; oText.value += "
    charCode is " + oEvent.charCode; var keys = []; if(oEvent.shiftKey){ keys.push("Shift"); } if(oEvent.ctrlKey){ keys.push("Ctrl"); } if(oEvent.altKey){ keys.push("Alt"); } oText.value += "
    keys down are " +keys; } </script> </head> <body> <textarea id="textId" rows="30" cols="100"></textarea> <br/> <textarea id="textKeyId" onkeydown="testEventText(event);" onkeypress="testEventText(event);" onkeyup="testEventText(event);" rows="30" cols="100"></textarea> <br/> </body> </html>
     

    2.2手順

    ユーザーが文字キーを1回押すと、次の順序でイベントが発生します.
        (1)keydown;
        (1)keypress;
        (2)keyup.
    ユーザーがCtrlなどの非文字キーを1回押すと、次の順序でイベントが発生します.
        (1)keydown;
        (2)keyup.
    ユーザーが文字キーを押して放さない場合、keydownイベントとkeypressイベントは、キーを放すまで連続的にトリガーされます.ユーザーが文字以外のキーを押して放さない場合、keydownイベントのみがトリガーされます.
        
        
        

    3、HTMLイベント

  • loadイベント--ページが完全にロードされた後、windowオブジェクトでトリガーされます.すべてのフレームがロードされ、フレームセットにトリガーされます.完全にロードされた後、その上でトリガーされます.または、要素に対して、完全にロードされた後にトリガーされます.
  • unloadイベント--ページが完全にアンインストールされた後、windowオブジェクトでトリガーされます.すべてのフレームがアンインストールされ、フレームセットでトリガーされます.完全にアンインストールされた後、その上でトリガーされます.または要素に対して、完全にアンインストールされ、トリガーされます.
  • aborイベント--ユーザーがダウンロードプロセスを停止したとき、オブジェクトがまだ完全にロードされていない場合、その上でトリガーされます.
  • errorイベント-javaScriptスクリプトが間違っている場合、windowオブジェクトでトリガーされます.あるの指定画像がロードできない場合、その上でトリガーします.または要素がロードできない場合にトリガーされます.または、フレームセット内の1つ以上のフレームがロードできない場合にトリガーされます.
  • selectイベント--ユーザーがテキストボックスの1つ以上の文字を選択したときにトリガーされます(または