我对j Query UI非常陌生。我试图设计一个拖放游戏。我在堆栈溢出中查看了很多答案,但没有得到非常相似的例子(或者我可能无法弄清楚)。
基本上,我试图做一个回收游戏,你可以将不同的项目拖放到回收站或垃圾桶。实际上所有的跨度都是图像。我的意思是将这些箱子并排放置,CSS之前用于图像,但现在不适用于跨度。
这是小提琴。拖动工作在我的浏览器上,但不适合小提琴。
https://jsfiddle.net/92dty8cq/9/
[code, it's all in fiddle]
我想要的是两件事:
1.当我将物品放入任何一个箱子时,如何使我的物品消失?
2.如何计算正确答案并在完成游戏后显示总分?
还有为什么它在本地运作而不是小提琴?
我有一个逻辑,我应该计算距离(data-x / y)并匹配bin和items的类/数据类型,但是编码时遇到了麻烦。
有什么建议吗?任何提示都会非常感激!
答案 0 :(得分:0)
这是一个有效的JSFiddle。
<强> 1。当我将它们丢弃在任一个箱子中时,如何使我的物品消失?
<强> 2。如何计算正确答案并在完成游戏后显示总分?
您可以初始化得分draggable
,并在每次droppable
接受$(function () {
// set the initial score to 0
var score = 0;
// and put it into the html
$("#score").find("span").html(score);
// increment score
var incrementScore = function() {
return ++score;
}
// update the score after calling the incrementScore() func
var updateScoreHtml = function() {
$("#score").find("span").html(incrementScore());
}
时递增。
hide()
对于可拖动的,添加 $(".drag-item").draggable({
hide: function() {
$(this).hide();
}
});
方法,
$(".dropzone#recyclebin").droppable({
accept: ".recyclable",
// if there is an accepted drop...
drop: function (event, ui) {
// call the hide() method of the draggable
ui.draggable.hide();
// and update the score.
updateScoreHtml();
}
});
结合可放置代码
<div id="graphic-container">
<div id="draggable-container">
<div class="drag-item recyclable">
<p>Glass Bottle</p>
</div>
<div class="drag-item notrecyclable">
<p>Mirror</p>
</div>
<div class="drag-item recyclable">
<p>Paper</p>
</div>
</div>
<div id="dropzone-container">
<div id="recyclebin" class="dropzone">Recycle Bin</div>
<div id="trashbin" class="dropzone">Trash Bin</div>
</div>
</div>
......实现你正在寻找的东西。
HTML应该是这样的:
.recyclable
请注意&#34; .notrecyclable
&#34;和&#34; drag-item
&#34;是#recyclebin
的类和那个&#34; #trashbin
&#34;和&#34; dropzone-container
&#34;是accept
的ids。
这使您可以正确使用droppable
对象的Mixed Content: The page at 'https://fiddle.jshell.net/92dty8cq/9/show/' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/jquery-1.10.2.js'. This request has been blocked; the content must be served over HTTPS.
fiddle.jshell.net/:1
选项。
第3。为什么它不适用于JSFiddle?
要了解为什么拖动不能在JSFiddle上运行,请查看浏览器中的JavaScript控制台。您将看到以下两个错误:
Mixed Content: The page at 'https://fiddle.jshell.net/92dty8cq/9/show/' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/ui/1.11.4/jquery-ui.js'. This request has been blocked; the content must be served over HTTPS.
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
之所以发生这种情况,是因为JSFiddle是一个安全的页面(通过HTTPS),但是你将这两个脚本作为不安全的资源(通过HTTP)包含在内。
HTML中的脚本标记应为:
longName
以下是控制台中错误的完整输出:
<强>资源强>
对于后续步骤,请查看
的JQuery UI文档希望有所帮助!