5.1实例拼图,如何判断两个图片是相邻的

5.1实例拼图,如何判断两个图片是相邻的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(function($) {
var dragSrc;
$("li").each(function(idx, ele) {
$(ele).on("dragstart"function(e) {
dragSrc = this;
})
$(ele).on("drop"function(e) {
e.preventDefault();
var myele = $(this).find("img");
$(this).append($(dragSrc).find("img"));
$(dragSrc).append(myele);
}).on("dragover"function(e) {
e.preventDefault();
}).on("dragenter"function(e) {
e.preventDefault();
}).on("dragleave"function(e) {
e.preventDefault();
})
});
})(jQuery)
<ul class="container">
<li draggable="true"> <img src="images/1.png" alt=""></li>
<li draggable="true"> <img src="images/4.png" alt=""></li>
<li draggable="true"> <img src="images/6.png" alt=""></li>
<li draggable="true"> <img src="images/3.png" alt=""></li>
<li draggable="true"> <img src="images/2.png" alt=""></li>
<li draggable="true"> <img src="images/7.png" alt=""></li>
<li draggable="true"> <img src="images/8.png" alt=""></li>
<li draggable="true"> <img src="images/5.png" alt=""></li>
<li draggable="true"> <img src="images/9.png" alt=""></li>

</ul>

实现拼图的方法我是让他们两个图片相互交换位置,我现在有个需求就是,只有相邻图片才能触发这个方法,请问这个如何判断两个图片是相邻的?http://img1.sycdn.imooc.com/climg/59e08b6d0001ca2f07950558.jpg 我尝试过用索引和坐标,但是都不能实现。。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
嘘_别说话 2017-10-13 17:57:48

你这个想法好复杂的说,可以试试判断图片拖动的距离,如果拖动的距离大于图片的宽度或者高度,那就不允许拖拽。

但是还有一个问题,就是斜角的图片拖动的话也要判断,好麻烦,开发中应该不会有这么麻烦的需求。

  • 提问者 西岚Silan #1
    我去问了几个大佬,他们说的方法大概有两种,一种就是坐标,取图片左上角的坐标,第二种就是索引,自己定一套规则,比如 1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3 不过实现起来好麻烦。。
    2017-10-13 18:12:13
  • 嘘_别说话 回复 提问者 西岚Silan #2
    确实太麻烦了,我觉得可以去网上找一下类似的代码,可以先看看大神们是咋写的,自己去写,总感觉有的地方逻辑不对
    2017-10-16 15:53:46
卡布琦诺 2017-10-13 17:56:11

建议你将代码贴全了哦,包括涉及到的html、css、js代码。祝学习愉快~

  • 提问者 西岚Silan #1
    我CSS贴不出来,他说字超了,,贴了HTML的。。
    2017-10-13 18:10:00
  • 卡布琦诺 回复 提问者 西岚Silan #2
    你可以直接在回复里面贴出来,你把代码贴全了大家才能帮更好的帮你解决问题哦~
    2017-10-13 18:32:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5&CSS3进阶与常用框架 2018
  • 参与学习       315    人
  • 提交作业       136    份
  • 解答问题       626    个

如果你有H5、CSS3、JS基础,热爱前端并希望在前端应用方面不断进步,那就来吧,本路径为你带来的课程有HTML5进阶、CSS3进阶、JS面向对象、jQ基础、Less等,助你进一步提升前端开发技能

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师