如何使用 jquery 将元素的副本拖到图像上?
How to drag copy of element over the image using jquery?
我有一个简单的 div 元素,我想将其拖到图像上,但是当我将 div 元素拖到图像上时,它不会显示在那里。
1. 我想将元素的副本拖到图像上
我尝试了不同的建议,但没有得到我想要的结果。
1. 我使用了助手:'clone'
--> 当我将克隆与 draggable
一起使用时它正在制作副本,但它仍然没有在图像标签上显示元素。
这里我提到了我的简单代码,请检查。并建议我实现我的结果。
@{
ViewBag.Title = "Draggable";
Layout = null;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<div>
<div class="ui-visual-focus draggable" style="width:100px;">
Textbox
</div>
<br />
<div class="droppable">
<img src="~/Documents/employeeFormImage.png" />
</div>
</div>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$(document).ready(function () {
});
$(function () {
$('.draggable').draggable({
revert: "invalid",
stack: ".draggable",
helper: 'clone'
});
$('.droppable').droppable({
accept: ".draggable",
drop: function (event, ui) {
var droppable = $(this);
var draggable = ui.draggable;
// Move draggable into droppable
draggable.clone().appendTo(droppable);
}
});
});
</script>
如果我解决了你的问题,那么你可以通过 CSS 中的小技巧来实现这一点,你可以将 <img>
与 position:absolute 结合起来并使其适合容器 droppable
<div>
那么就会是这样的,还要注意我去掉了 helper.clone
.
更新:可调整大小的拖动,请注意,我为 .ui-visual-focus
<div>
添加了 css 并且我强制执行绝对位置,这样它就不会下推可放置区域。
$(function () {
$('.draggable').draggable({
revert: "invalid",
stack: ".draggable"
}).resizable();
$('.droppable').droppable({
accept: ".draggable",
});
});
img {
width: 300px;
height: auto;
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
.ui-visual-focus {
position:absolute !important;
width: 100px;
height: 30px;
}
.image-container {
top: 20px;
position:relative;
width:300px;
max-height: 200px;
border:1px solid;
height:200px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<div>
<div class="ui-visual-focus draggable" style="width:100px;">
Textbox
</div>
<br />
<div class="image-container droppable">
<img src="https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1652&q=80" />
</div>
</div>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
我有一个简单的 div 元素,我想将其拖到图像上,但是当我将 div 元素拖到图像上时,它不会显示在那里。 1. 我想将元素的副本拖到图像上
我尝试了不同的建议,但没有得到我想要的结果。
1. 我使用了助手:'clone'
--> 当我将克隆与 draggable
一起使用时它正在制作副本,但它仍然没有在图像标签上显示元素。
这里我提到了我的简单代码,请检查。并建议我实现我的结果。
@{
ViewBag.Title = "Draggable";
Layout = null;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<div>
<div class="ui-visual-focus draggable" style="width:100px;">
Textbox
</div>
<br />
<div class="droppable">
<img src="~/Documents/employeeFormImage.png" />
</div>
</div>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$(document).ready(function () {
});
$(function () {
$('.draggable').draggable({
revert: "invalid",
stack: ".draggable",
helper: 'clone'
});
$('.droppable').droppable({
accept: ".draggable",
drop: function (event, ui) {
var droppable = $(this);
var draggable = ui.draggable;
// Move draggable into droppable
draggable.clone().appendTo(droppable);
}
});
});
</script>
如果我解决了你的问题,那么你可以通过 CSS 中的小技巧来实现这一点,你可以将 <img>
与 position:absolute 结合起来并使其适合容器 droppable
<div>
那么就会是这样的,还要注意我去掉了 helper.clone
.
更新:可调整大小的拖动,请注意,我为 .ui-visual-focus
<div>
添加了 css 并且我强制执行绝对位置,这样它就不会下推可放置区域。
$(function () {
$('.draggable').draggable({
revert: "invalid",
stack: ".draggable"
}).resizable();
$('.droppable').droppable({
accept: ".draggable",
});
});
img {
width: 300px;
height: auto;
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
.ui-visual-focus {
position:absolute !important;
width: 100px;
height: 30px;
}
.image-container {
top: 20px;
position:relative;
width:300px;
max-height: 200px;
border:1px solid;
height:200px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<div>
<div class="ui-visual-focus draggable" style="width:100px;">
Textbox
</div>
<br />
<div class="image-container droppable">
<img src="https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1652&q=80" />
</div>
</div>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>