我使用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