我可以将图像拖放到每周吃一次的篮子中
如果一个人每周吃五次以上的食物,或者他从来没有吃过该怎么办?
例如,如果一个人每周吃一次西瓜,请尝试从“物品”中拖动并释放西瓜图像,以将点数增加30。
如果同一个人每周吃五次西瓜怎么办,如何提高他的分数?
这是一个脚本
var myscore=0;
function dragStart(ev) {
ev.dataTransfer.effectAllowed='move';
ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));
ev.dataTransfer.setDragImage(ev.target,0,0);
return true;
}
function dragEnter(ev) {
event.preventDefault();
return true;
}
function dragOver(ev) {
return false;
}
function dragDrop1(ev) {
var src = ev.dataTransfer.getData("Text");
if(!ev.target.contains(document.getElementById(src))){
ev.target.appendChild(document.getElementById(src));
ev.stopPropagation();
var cal=0;
switch(src){
case "image1": cal = 20; break;
case "image2": cal = 30; break;
case "image3": cal = 40; break;
case "image4": cal = 50; break;
case "image5": cal = 60; break;
default: cal=10;
}
myscore=myscore-cal;
document.getElementById('Score').innerHTML=myscore;
}
return true;
}
function dragDrop2(ev) {
var src = ev.dataTransfer.getData("Text");
if(!ev.target.contains(document.getElementById(src))){
ev.target.appendChild(document.getElementById(src));
ev.stopPropagation();
var cal=0;
switch(src){
case "image1": cal = 20; break;
case "image2": cal = 30; break;
case "image3": cal = 40; break;
case "image4": cal = 50; break;
case "image5": cal = 60; break;
default: cal=10;
}
myscore=myscore+cal;
document.getElementById('Score').innerHTML=myscore;
}
return true;
}
这是一个Fiddle
最佳答案
好的,这是交易。我添加了一个功能来复制food div,从而使您可以将其任意拖放。
function duplicate(x) {
var clone = x.cloneNode(true);
clone.id = ""
clone.onclick = duplicate;
x.parentNode.insertBefore(clone, x.nextSibling);
}
这是fiddle。
这样,您可以根据需要放入任意数量的西瓜。问题是您可以通过单击将其中的项目相乘。我没有足够的时间来修复错误,但是您现在可以自己考虑一下。有空的时候我会清理脚本。
PS:出于乘法目的,我将id更改为class。