我使用jQuery拖放功能來創建一個區塊列表加上一個可拖動的小部件,可以在任何瓷磚。jquery拖放 - 可拖放區域有邊框和可拖動項目不會捕捉到此邊框的內部
每個瓷磚都有一個邊框,但小工具沒有,所以雖然他們都是相同的大小,但當我將小工具放到瓷磚中時,它會捕捉到瓷磚邊界的左下角。因此瓦片頂部有兩個備用像素。
這裏有一個小提琴 http://jsfiddle.net/gztQM/
和一些代碼:
div[id^="row"] {float:left; width:65px; height:65px; margin:5px;border:1px solid #454545; background-color:#262e41;}
.bookmark {float:left; width:65px; height:65px; background-color:#edff57;cursor: move;display:block; margin:-1px 0px 0px -1px;}
.bookmark.ui-draggable-dragging {-moz-box-shadow: 0 0 5px #d9d9d9; -webkit-box-shadow: 0 0 5px #d9d9d9; box-shadow: 0 0 5px #d9d9d9;}
這裏的可投放區域的例子(磚)
<div class="position" id="row-2col-1"></div>
可拖動鏈接
<a href class="bookmark"></a>
的JS
$('.bookmark').draggable({containment: '#content', snap:'.position', snapMode:'inner', revert:'invalid',snapTolerance: 32});
$('.position').droppable({drop: handleDropEvent, accept:'.bookmark'});
function handleDropEvent(event, ui) {
var draggable = ui.draggable;
}
我怎樣才能得到它捕捉到邊框內?我嘗試添加邊距和填充,但無濟於事。在jQuery網站上看不到任何提及此事的任何東西
幫助! :)
嘿,感謝您的答覆。我試過這個,但它只是讓可丟棄區域更小。因此,當鏈接被放置在那裏時,它覆蓋了邊界。如果我讓Droppable稍微大一些來補償抵消的問題回來 – 2013-02-13 13:05:27
@ZaphodBeeblebrox你是對的。我已經在解決方案中添加了更新部分來解答我的問題。這似乎是'droppable'和'draggable'的默認行爲,沒有明顯的暴露選項。 – 2013-02-13 14:16:35
是的,謝謝你幫助我,看起來不可能像我希望的那樣發生。我想我會用樣式去做瓦片的包裝。再次感謝幫助朋友 – 2013-02-13 15:57:25