我正在尝试使用jQuery UI和Bootstrap行/面板创建可拖动的面板集。 我已经得到了基本工作,我的问题是当您拖动面板时,占位符的大小不正确。它的大小是整个行而不是元素的大小。
$('.row').sortable({
connectWith: ".panel",
handle: ".panel-heading",
placeholder: "panel-placeholder"
});
$('.panel').on('mousedown', function(){
$(this).css( 'cursor', 'move' );
}).on('mouseup', function(){
$(this).css( 'cursor', 'auto' );
});;
.panel-placeholder {
border: 1px dotted black;
margin: 1em 1em 1em 1em;
height: 50px;
}
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row">
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Panel title</h3>
</div>
<div class="panel-body">
Panel content
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Panel title</h3>
</div>
<div class="panel-body">
Panel content
</div>
</div>
</div>
<div class="col-md-8">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Panel title</h3>
</div>
<div class="panel-body">
Panel content
</div>
</div>
</div>
</div>
</div>
$('.col-md-4').sortable({
connectWith: ".col-md-4",
handle: ".panel-heading",
placeholder: "panel-placeholder"
});
JSFiddle: https://jsfiddle.net/zdfb3e0p/8/
有什么想法吗?
.panel-placeholder
的margin
属性更改为margin: 1em 1em 1em 1em;
对我来说似乎工作得很好。或者你也可以使用margin: 15px 1em 1em 15px;
,这样更符合bootstrap的边距和填充。 - Angelos Chalaris