【发布时间】:2021-06-13 23:06:39
【问题描述】:
如果有多个 jquery 可拖动 div,我想查看指南并捕捉到其他 div 的指南、边缘和角落。
代码如下:
$(".draggable").draggable();
$(".draggable").resizable();
body {
font-family: courier new, courier;
font-size: 12px;
}
.draggable {
border: 1px solid #ccc;
width: 100px;
height: 80px;
cursor: move;
position: relative;
}
.guide {
display: none;
position: absolute;
left: 0;
top: 0;
}
#guide-h {
border-top: 1px dashed #55f;
width: 100%;
}
#guide-v {
border-left: 1px dashed #55f;
height: 100%;
}
#image{
height: 150px;
width: 200px;
}
img{
width: 100%;
height: 100%;
}
#image_h {
position: absolute;
color: white;
top: 0;
left: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css"/>
<div class="draggable">drag me!</div>
<div class="draggable">you can drag me too, if you like</div>
<div class="draggable">hep hep</div>
<div class="draggable" id="image">
<img src="https://cdn.pixabay.com/photo/2021/02/06/16/29/jay-5988657__340.jpg">
<div id="image_h">
Hello
</div>
</div>
<div id="guide-h" class="guide"></div>
<div id="guide-v" class="guide"></div>
下图中的蓝线是我希望在拖动 div 时显示的内容 see image here。 div 对齐时,div 应与蓝色引导线对齐。
不要改变类的相对和绝对位置,因为我用它们将一个 div 覆盖在另一个上。
我尝试在线搜索,但解决方案太旧、太笨拙且适用于 jquery 2.x 请帮忙!
【问题讨论】:
-
欢迎来到 Stack Overflow。这个问题的范围可能太大了。除了 Snapping 之外,jQuery UI 没有内置任何这些功能。从图像中不清楚应该生成指南或它们应该如何工作。最好将其分解为小问题,然后在您需要帮助时提出每个问题。
标签: javascript jquery jquery-ui draggable jquery-ui-draggable