我创建了其中一个解锁游戏,你必须从你的方式移动障碍物才能将主要区块拖到目标位置。在我的例子中,红色矩形变为黄色矩形并且按预期工作,但我缺少的是碰撞效果(现在块相互通过)。
我尝试了几种方法,例如JQuery UI Draggable documentation中定义的障碍物:"。障碍物" ,但我无法使其发挥作用。在原始文档中,他们给出了一些例子,但这些障碍是不可动的。有人可以帮我吗?
这是JSfiddle工作示例(使用UI Draggable Collision)。
HTML
<div class="container">
<div class="hero-block-area">
<div id="hero-block" class="collider"></div>
</div>
<div class="enemy-block-area">
<div id="enemy-block" class="obstacle"></div>
</div>
<div id="Target1" class="target"></div>
</div>
的jQuery
$(document).ready(function() {
$("#hero-block").draggable({ containment: ".hero-block-area", obstacle: ".obstacle" });
$("#enemy-block").draggable({ containment: ".enemy-block-area" });
$("#Target1").droppable({
tolerance: "touch",
preventCollision: true,
drop: dropItem
});
});
function dropItem(ev, ui) {
alert("NICE!");
}
CSS
.container {
width: 600px;
height: 300px;
overlay: hidden;
position: relative;
background: gray;
display: block;
}
.target {
margin-left: 100px;
width: 100px;
height: 40px;
position: absolute;
top: 180px;
right: 0px;
background: yellow;
}
.hero-block-area {
top: 180px;
width: 100%;
position: absolute;
}
#hero-block {
background: red;
width: 100px;
height: 40px;
z-index: 2;
}
.enemy-block-area {
width: 40px;
height: 100%;
position: absolute;
top: 0px;
left: 200px;
}
#enemy-block {
background: brown;
width: 40px;
height: 120px;
bottom: 0px;
position: absolute;
}