我正在制作一个项目,这是一个简单的待办事项列表。您可以拖动任务并重新排列,我已将任务containment
设置为包含它们的div。
但是当你想把一个任务放在顶部,然后你只需将它拖到顶部时,容器div就会阻止它超越顶部的当前任务。
我想修改可排序插件,在顶部和底部添加额外的10px
,因此任务不会完全停在div的顶部,而是超出10px
并且同样位于容器div的底部。
亲自尝试理解我的意思。 here。添加几个任务,并尝试将一些任务放在容器的顶部。
我尝试使用开发包修改sortable
,我得到了那些行,但不知道要修改的内容:
if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
var c = $(o.containment);
var ce = c[0]; if(!ce) return;
var co = c.offset();
var over = ($(ce).css("overflow") != 'hidden');
this.containment = [
(parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
(parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),
(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom
];
this.relative_container = c;
}
答案 0 :(得分:2)
嗯,似乎我已经解决了这个问题,对于有此问题的任何人都可以将此选项添加到sortable
:
tolerance: "pointer"
这是重新排序在拖动过程中的行为方式。可能的值: '相交','指针'。在某些设置中,“指针”更自然。
- 相交:draggable与droppable重叠至少50%
- 指针:鼠标指针与可放置的
重叠
奇怪的是,intersect
是默认值,可以更好地使pointer
成为默认值。