イベントシステムの理解に問題があります

マイクハリコフ

私はこのコードを持っています:

<template>

  <div class="chart"
       v-bind:style="chartStyleObject"
       v-on:mousedown.left="initHandleMousedown($event)"
       v-on:mouseup.left="initHandleMouseup()"
       v-on:mouseout="initHandleMouseup()">

    <div class="chartContent">
    </div>
    <!--   <div class="chartContent">  end   -->

  </div>
  <!--   <div class="chart">   end   -->

</template>

<script>
  import axios from 'axios';

export default{

created () {
},

data () {
  return {
    ticket: null,

    chartStyleObject: {
      width: '500px',
      widthWrapper: '1600px',
      heightWrapper: '500px',
      height: '247px',
      marginTop: '15px',
      marginRight: '0px',
      marginBottom: '0px',
      marginLeft: '15px',
    },

    XCoord: null,
    YCoord: null,

  }
},

methods: {

  initHandleMousedown(event) {
    this.startMousedownXCoord = event.clientX;
    this.startMousedownYCoord = event.clientY;
    this.XCoord = event.clientX;
    this.YCoord = event.clientY;

    console.log('XCoord', this.XCoord);
    console.log('YCoord', this.YCoord);

    window.addEventListener('mousemove', this.initHandleMouseMove);
  },

  initHandleMouseMove(event) {

      this.XCoord = event.clientX;
      this.YCoord = event.clientY;

      console.log('XCoord', this.XCoord);
      console.log('YCoord', this.YCoord);

  },

  initHandleMouseup() {
    window.removeEventListener('mousemove', this.initHandleMouseMove);
  },

  },

}

</script>

<style scoped>

.chart{
  position: relative;
  border-radius: 10px;
  padding: 27px 10px 10px 10px;
  background-color: #45788b;
  box-sizing: border-box;
  cursor: move;
}
.chart .chartContent{
  position: relative;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  margin: 0 0 0 0;
  background-color: #2f2c8b;
}



</style>

HTML design consists of 2 blocks:
(parent and child)
The event is tied to the parent tag `<div class =" chart ">`
Also, the parent block has padding on all 4 sides:

ここに画像の説明を入力してください

親ブロックをクリックし、パディングスペースに影響を与えずにマウスでドライブ(ボタンを押したまま)すると、mousemoveイベントが問題なく発生します。ただし、マウスカーソルがパディング領域に触れるとすぐに、イベントは機能しなくなります。
パディングをクリックすると、イベントも正しく機能しますが、パディングの外側のブロックスペース(内部スペース)にマウスカーソルを移動すると、イベントは機能しなくなります
質問:
なぜこれが発生するのですか?この動作はjs + nuxtでは正常ですか? .js?

スカートル

ページのさまざまな領域の説明を正確に追うことはできませんが、あなたが見ていると思うものを説明することはできます。

これの鍵は、mouseoutリスナーを削除するmousemoveリスナーがあることです。mouseoutそれも場合に発生することを意味イベントが伝播する、mouseout子要素に発生しました。mouseleaveイベントが要素自体で発生した場合にのみ発生するコントラスト

以下の例mouseoutは、マウスカーソルがルート要素から離れていなくてもリスナーがどのように起動するかを示していますカーソルを子の外側に移動するだけで十分です。

document.getElementById('outer').addEventListener('mouseout', () => {
  document.getElementById('out').innerHTML += 'mouseout\n'
})
div {
  border: 1px solid;
  display: inline-block;
  padding: 20px;
}
<div id="outer">
  <div></div>
</div>
<pre id="out"></pre>

イベントが機能しなくなるのを観察すると、実際に起こっていることは、mouseoutイベントが起こっていることであり、それがmousemoveリスナーを削除していることだと思います。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキストベースのRPGゲームのインベントリを作成するのに問題があります

分類Dev

イベントの実行に問題があります

分類Dev

このjavascript破壊ステートメントを理解するのに問題があります

分類Dev

FAT32ファイルシステムに問題があります。dosfstoolsとmtoolsをインストールする必要があります

分類Dev

LibreOfficeのインストールに問題があります

分類Dev

cocoapodsのインストールに問題があります

分類Dev

cocoapodsのインストールに問題があります

分類Dev

cocoapodsのインストールに問題があります

分類Dev

OpenSSLCocoapodのインストールに問題があります

分類Dev

spacyのインストールに問題があります

分類Dev

PyTorchのインストールに問題があります

分類Dev

g ++のインストールに問題があります

分類Dev

LibreOfficeのインストールに問題があります

分類Dev

SimpLESSのインストールに問題があります

分類Dev

PILのインストールに問題があります

分類Dev

tensorflowのインストールに問題があります

分類Dev

IntelHAXMのインストールに問題があります

分類Dev

実際のデバイスのファイルシステムに問題があります

分類Dev

Noobはコーディングに問題があります(テキスト戦闘システム)

分類Dev

ラズベリーパイにgnupgをインストールするのに問題があります

分類Dev

シングルトンパターンの使用方法を理解するのに問題がありますか?

分類Dev

イベントハンドラーの登録に問題があります

分類Dev

イベントやワードプレスのテーマのインストールに問題があります

分類Dev

反応中のショッピングカートアプリケーションのアイテムのIDに問題があります

分類Dev

pygameのイベントループに問題があります

分類Dev

プライベートメソッドをテストしたいのですが、デザインに問題がありますか?

分類Dev

コマンドライン引数の理解に問題があります。

分類Dev

Javascriptの接尾辞インクリメント演算子の理解に問題があります

分類Dev

ダーツのifステートメントに問題があります

Related 関連記事

  1. 1

    テキストベースのRPGゲームのインベントリを作成するのに問題があります

  2. 2

    イベントの実行に問題があります

  3. 3

    このjavascript破壊ステートメントを理解するのに問題があります

  4. 4

    FAT32ファイルシステムに問題があります。dosfstoolsとmtoolsをインストールする必要があります

  5. 5

    LibreOfficeのインストールに問題があります

  6. 6

    cocoapodsのインストールに問題があります

  7. 7

    cocoapodsのインストールに問題があります

  8. 8

    cocoapodsのインストールに問題があります

  9. 9

    OpenSSLCocoapodのインストールに問題があります

  10. 10

    spacyのインストールに問題があります

  11. 11

    PyTorchのインストールに問題があります

  12. 12

    g ++のインストールに問題があります

  13. 13

    LibreOfficeのインストールに問題があります

  14. 14

    SimpLESSのインストールに問題があります

  15. 15

    PILのインストールに問題があります

  16. 16

    tensorflowのインストールに問題があります

  17. 17

    IntelHAXMのインストールに問題があります

  18. 18

    実際のデバイスのファイルシステムに問題があります

  19. 19

    Noobはコーディングに問題があります(テキスト戦闘システム)

  20. 20

    ラズベリーパイにgnupgをインストールするのに問題があります

  21. 21

    シングルトンパターンの使用方法を理解するのに問題がありますか?

  22. 22

    イベントハンドラーの登録に問題があります

  23. 23

    イベントやワードプレスのテーマのインストールに問題があります

  24. 24

    反応中のショッピングカートアプリケーションのアイテムのIDに問題があります

  25. 25

    pygameのイベントループに問題があります

  26. 26

    プライベートメソッドをテストしたいのですが、デザインに問題がありますか?

  27. 27

    コマンドライン引数の理解に問題があります。

  28. 28

    Javascriptの接尾辞インクリメント演算子の理解に問題があります

  29. 29

    ダーツのifステートメントに問題があります

ホットタグ

アーカイブ