Vue.js dragoverイベントを取得する
Vue.jsで、要素内にドラッグされている間イベントが発生するdragoverイベントを取得するサンプルコードを記述してます。 「vue3」を使用してます。
環境
- OS windows10 pro 64bit
- Vue.js 3.2.2
- Apache 2.4.43
- ブラウザ chrome 92.0.4515.107
dragoverイベントを取得
dragoverイベントを取得するには、「v-on:dragover」を使用します。
「 v-on:dragover」は、「@dragover」と省略できます。
以下は、ドラッグされた要素内にいる間、変数「count」を1づつ増加させるサンプルコードとなります。
※「vue3」は「cdn版」、デザインは「semantic-ui」を使用してます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>mebeeサンプル</title>
<!-- semantic.css -->
<link rel="stylesheet" type="text/css"
href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
<script src="https://unpkg.com/vue@next"></script>
</head>
<style>
body>.grid {
height: 100%;
}
</style>
<body>
<div id="app" class="ui grid middle aligned">
<div class="row">
<div class="column">
<h2 class="ui gray header center aligned">{{val}}</h2>
<!-- ドラッグする要素 -->
<div class="ui positive message container segment"
style="width: 200px; padding: 20px; margin-bottom: 10px; border: 1px dashed #333333;">
Hello Javascript!!
</div>
<!-- ドロップされる要素 -->
<div @dragenter="foo" class="ui info message container segment"
style="width: 200px; padding: 20px; margin-bottom: 10px; border: 1px dashed #333333;">
Hello drag!!
</div>
</div>
</div>
</div>
<script>
const hoge = {
data() {
return {
val:''
}
},
methods: {
foo: function (e) {
this.val = 'ドラッグされました'
}
}
}
Vue.createApp(hoge).mount('#app')
</script>
</body>
</html>
変数「count」が増え続けていることが確認できます。
「dragenter」の場合は、要素内に入った際にしかイベントは発生しません。
<!-- dragenterに変更 -->
<div @dragenter="foo" class="ui negative message container segment"
style="width: 200px; padding: 20px; margin-bottom: 10px; border: 1px dashed #333333;">
Hello drag!!
</div>
実行結果
-
前の記事
php echoを短縮して記述する 2021.12.03
-
次の記事
pg_dump時 「サーババージョンの不整合のため処理を中断しています」が発生した場合の対処法 2021.12.03
コメントを書く