【发布时间】:2014-03-20 01:15:05
【问题描述】:
我有 2 个 css 类,屏幕左侧和右侧,我需要将它们放在一起,在这些类中,我有看起来像拼图的图像:
通过将图像从右侧拖动到左侧。在放置时,必须与左侧的图像相适应。我阅读了有关拖放的内容,但没有找到类似的内容:( 我试过什么?
编辑:http://postimg.org/image/je31ptb6d/(这是我的图片的示例。顶部是按类分隔的图像 - class="left" 用于 ca,class="right" 用于 nă。底部是我放下图像后的图像从右到左。我的问题是如何指定正确的放置区域以使图像在我从右侧放置图像后看起来像链接的底部?)
JS/Jquery:
// shuffle function for right side only
$(document).ready(function() {
var a = $(".right > img").remove().toArray();
for (var i = a.length - 1; i >= 1; i--) {
var j = Math.floor(Math.random() * (i + 1));
var bi = a[i];
var bj = a[j];
a[i] = bj;
a[j] = bi;
}
$(".right").append(a);
});
// drag and drop
$(function() {
$( ".right img" ).draggable
({
cursor: 'move',
revert: 'invalid',
});
$( ".left img" ).droppable({
tolerance: 'fit',
});
});
HTML:
<div class="left">
<img class="piese" id="piesa1" src="images/Text_1.svg" />
<img class="piese" id="piesa2" src="images/Text_2.svg" />
<img class="piese" id="piesa3" src="images/Text_3.svg" />
<img class="piese" id="piesa4" src="images/Text_4.svg" />
</div>
<div class="right">
<img class="piese" id="piesa5" src="images/Text_5.svg" />
<img class="piese" id="piesa6" src="images/Text_6.svg" />
<img class="piese" id="piesa7" src="images/Text_7.svg" />
<img class="piese" id="piesa8" src="images/Text_8.svg" />
</div>
【问题讨论】:
-
"fit" 表示它与目标元素的大小相同。这与图像中的形状无关。拖放不会对图像进行几何分析。
-
有另一个元素,它是每个
<img>的包装器以及该元素上的拖放。然后,当你得到一个匹配的一面时,将所有元素从一个包装器移动到另一个包装器中,并销毁空包装器。现在,当剩余的包装被移动时,所有连接在一起的部分也会移动,因为它们在里面 -
@Diodeus 当我说“适合”时,我想从 2 张图像中制作另一个长度不同的图像……类似于图像 1 + 图像 2。但我的问题是左图像的右侧是曲折不直,不知道如何在其右侧设置放置区域以放置图像
-
制作一个大小相同的包装器。
-
有人知道怎么做吗?
标签: javascript jquery html css drag-and-drop