我想要一些正方形的可拖動對象(在這種情況下只有<td>
框中包含數字)可以捕捉到一些空的表格單元格並捕捉到這些單元格的中心(空的td框),而不是(外部)邊緣這些細胞,這是默認情況下所做的。如何強制jquery在將元素拖動到另一個容器並將其對齊時將元素居中?
這裏是我的腳本:
<script type="text/javascript">
$(document).ready(function() {
$(".inputs div").draggable({
snap: ".spaces"
});
});
</script>
編輯:這裏是整個文件
<!DOCTYPE html>
<head>
<title>Draggable</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.21.custom.min.js"></script>
<script type="text/javascript" src="jquery.ui.touch-punch.min.js"></script>
<style>
.block {
z-index:9999;
cursor:move;
}
li {
list-style:none;
}
tr {
border: 2px solid black;
}
table {
border: 2px solid black;
}
.inputs div {
float:left;
background-color:#FFFFFF;
color:#004E66;
font-size:x-large;
margin:2px;
padding:20px;
border:1px solid black;
}
.spaces td {
background-color:#666666;
margin:2px;
padding:36px;
border:2px solid black;
}
</style>
</head>
<body>
<form id="form1">
<div class="inputs">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
<br/>
<table class="spaces">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</form>
<!-- here we are telling jquery to make each element inside of class 'inputs' draggable -->
<script type="text/javascript">
$(document).ready(function() {
$(".inputs div").draggable({
snap: ".spaces"
}).center();
});
</script>
這裏是發生了什麼事情
-----+---------+ XXXXXXXXXXX X| | | | Y x| | X| -----+-------+X| | X|
- 的一個粗略的基於文本的說明如果上面的框是topmos右角的td單元格t tr row
- 然後X是元素當前粘貼的地方(顯然它不是 大,我只是顯示它粘貼的地方......實際上我刪除了 一些X來顯示它如何對齊角落一旦達到 與它的某種接近度......)
- 基本上這個模型表明只有 表的外部邊緣對於可拖動元素具有「引力」。我真正想要它 要做的就是將斥力捕捉到td單元到所有的邊緣,而不是 吸引到外部的。
- Y是拖動元素的所需抓取位置。
- 最後呈現的原因,我想元素咬合到位 帶有某種過渡,而不是突然跳躍...
您是否希望可拖動的元素在tds內垂直和水平居中?因爲他們不適合很好。 – 2012-07-11 05:55:13
4000次閱讀。 9正確的答案upvotes。 4在這個問題上。 moochers。登錄你的口袋! – 2015-07-30 20:35:38