我一直在尝试让一个基本的拖放界面工作。我让它使用一组 div 工作,但是当我将 div 更改为可调整大小的手风琴时,我发现当我移动到可调整大小的 div 的边界之外时,图像将不会显示。光标保持不变,拖动项目的图像似乎绘制在可调整大小的 div 上。当光标离开手风琴时,您可以看到滚动条移动。放置操作“似乎”按预期被拾取。唯一的问题是保留拖动项目的可见性。我试过zIndex
没有效果。
我会包含显示效果的图像和示例代码,但我没有 10 的声誉来发布图像。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<link rel="stylesheet" href="../themes/base/jquery.ui.all.css">
<script src="./jquery-1.8.3.js"></script>
<script src="../ui/jquery.ui.core.js"></script>
<script src="../ui/jquery.ui.widget.js"></script>
<script src="../ui/jquery.ui.mouse.js"></script>
<script src="../ui/jquery.ui.resizable.js"></script>
<script src="../ui/jquery.ui.accordion.js"></script>
<script src="../ui/jquery.ui.draggable.js"></script>
<script src="../ui/jquery.ui.droppable.js"></script>
<link rel="stylesheet" href="./mainDemo.css">
<style>
#accordion-resizer {
padding: 10px;
width: 100px;
height: 400px;
}
</style>
<script>
$(function() {
$( "#accordion" ).accordion({
heightStyle: "fill"
});
});
$(function() {
$( "#accordion-resizer" ).resizable({
minHeight: 140,
minWidth: 50,
resize: function() {
$( "#accordion" ).accordion( "refresh" );
}
});
});
</script>
<script type="text/javascript">
$(init);
function init() {
$('#cardPile').html('');
var numbers = [ 'test a ','test b', 'test c' ];
for (var i = 0; i < 3; i++) {
createItem(numbers[i], '#baseWidgets', ['#content','#selection'], '#baseWidgets div' );
}
$('#displayCanvas').droppable({
accept: '#baseWidgets div',
hoverClass: 'hovered',
drop:handleCardDrop
});
}
function createItem( title, parent, container, stack )
{
var el = '<div>' + title + '</div>';
var $div = $(el).data('number', title).attr('id', 'card' + title).appendTo(parent).draggable({
containment: ['displayCanvas','content'],
stack: stack,
cursor: 'move',
zIndex:1000,
scroll: false,
revert: true
});
}
function handleCardDrop(event, ui) {
}
</script>
</head>
<body>
<div id="content">
<div id="accordion-resizer" >
<div id="accordion">
<h3>Basic</h3>
<div id ="selection" >
<div id="baseWidgets"> </div>
</div>
<h3>Advanced</h3>
<div>
<p>Some data</p>
</div>
</div>
</div>
<div id="displayCanvas">
</div>
</div>
</body>
</html>
body {
font-size: 62.5%;
font-family: "Trebuchet MS", "Arial", "Helvetica", "Verdana", "sans-serif";
}
table {
font-size: 1em;
}
#selection {
margin: 2px 2px;
position: relative;
vertical-align: middle;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
border-radius: 8px;
}
.imgcls {
width: 32px;
height: 32px;
border: 1px solid #a8cad0;
border-radius: 2px;
position: relative;
}
.demo-description {
clear: both;
padding: 12px;
font-size: 1.3em;
line-height: 1.4em;
}
#baseWidgets div.ui-draggable-dragging {
-moz-box-shadow: 0 0 .5em rgba(0, 0, 0, .8);
-webkit-box-shadow: 0 0 .5em rgba(0, 0, 0, .8);
box-shadow: 0 0 .5em rgba(0, 0, 0, .8);
}
#displayCanvas
{
margin: 2px 2px;
height: 92%;
width: 99.5%;
top: 4%;
position: relative;
vertical-align: middle;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
background: #ebedf2;
border: 1px solid #333;
border-radius: 8px;
}
#content {
margin: 2px 2px;
height: 92%;
width: 99.5%;
top: 4%;
position: fixed;
vertical-align: middle;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
background: #ebedf2;
border: 1px solid #333;
border-radius: 8px;
}