html 5特集
3726 ワード
ドラッグ&ドロップ
対応するドラッグ可能な要素にdraggable='true'イベントを設定する:ドラッグ可能な要素1、dragstart:ドラッグ開始2、drag:ドラッグ中3、dragend:ドラッグ終了ドラッグを受け入れるターゲット領域1、dragenter:ターゲット領域に入る2、dragover:ターゲット領域にいる3、dragleave:ターゲット領域から離れる4、dragdrop:ターゲット領域で離す(デフォルトイベントを早期dragoverイベントでブロックする必要がある)
データの転送と受信:
カートを引っ張るケース:
対応するドラッグ可能な要素にdraggable='true'イベントを設定する:ドラッグ可能な要素1、dragstart:ドラッグ開始2、drag:ドラッグ中3、dragend:ドラッグ終了ドラッグを受け入れるターゲット領域1、dragenter:ターゲット領域に入る2、dragover:ターゲット領域にいる3、dragleave:ターゲット領域から離れる4、dragdrop:ターゲット領域で離す(デフォルトイベントを早期dragoverイベントでブロックする必要がある)
データの転送と受信:
event.dataTransfer.setdata('text',this.index)
event.dataTransfer.getdata('text')
カートを引っ張るケース:
Document
window.onload = function() {
var oLi = document.getElementsByTagName('li');
var oDiv = document.getElementById('div1');
var obj = {};
var iNum = 0;
var allMoney = null;
for (var i = 0; i < oLi.length; i++) {
oLi[i].ondragstart = function(ev) {
var aP = this.getElementsByTagName('p')
ev.dataTransfer.setData('title', aP[0].innerHTML)
ev.dataTransfer.setData('money', aP[1].innerHTML)
//ev.dataTransfer.setDragImage(this,0,0);
}
}
oDiv.ondragover = function(ev) {
ev.preventDefault();
}
oDiv.ondrop = function(ev) {
ev.preventDefault();
var sTitle = ev.dataTransfer.getData('title');
var sMoney = ev.dataTransfer.getData('money');
if (!obj[sTitle]) {
oDiv.innerHTML = oDiv.innerHTML + `
<p>
<span class="box1">1</span>
<span class="box2">${sTitle}</span>
<span class="box3">${sMoney}</span>
</p>
`
obj[sTitle] = 1;
} else {
var box1 = document.getElementsByClassName('box1');
var box2 = document.getElementsByClassName('box2');
for (var i = 0; i < box2.length; i++) {
if (box2[i].innerHTML == sTitle) {
box1[i].innerHTML = parseInt(box1[i].innerHTML) + 1;
}
}
}
iNum += parseInt(sMoney);
console.log(iNum);
if (!allMoney) {
oDiv.innerHTML = oDiv.innerHTML + `<div id="allMoney">${iNum}¥</div>`
allMoney = 1;
}
document.getElementById('allMoney').innerHTML = iNum + '¥';
oDiv.appendChild(document.getElementById('allMoney'));
}
}
-
![](js .jpg)
js
80¥
-
![](css.jpg)
css
60¥
-
![](node.jpg)
node
78¥