所以我有这个项目,我正在努力,现在我卡住了:(
我的问题是,当我拖放项目时,我需要获取/设置相对于容器的位置,而不是整个身体,所以根据我的理解,我应该使用position()。我这样做是用
var pos=$(ui.helper).position();
objName = "#leaf"+counter++
$(objName).css({"left":pos.left,"top":pos.top});
虽然这会在我拖入div后引入跳转。
我有这个工作,它会使用var pos = $(ui.helper).offset();给我绝对的左右值。并将我的容器(#treeContainer)设置为NOT CONTAIN“position:relative;”虽然这给了我相对于整个页面的绝对值!
非常感谢任何回复!
答案 0 :(得分:0)
首先,删除#drag
对象上的定位CSS。那些值转移到目标对象,并与您的目标冲突。或者,您可以在JS代码中将这些值重置为0.
#drag1 {
width:74px;
height:111px;
float:right;
background-color:#0F3;
}
#drag2 {
width:74px;
height:111px;
float:right;
background-color:#3C9;
}
接下来,在JS中,您需要使用减法使用父容器中的值来抵消top
和left
值。
var pos = $(ui.helper).offset();
var treePos = $('#treeContainer').offset();
objName = "#leaf" + counter++;
$(objName).css({"left": pos.left - treePos.left, "top": pos.top - treePos.top});
在这些更改之后,它可以正常工作。有关示例,请参阅http://jsbin.com/exoqu3/6。
答案 1 :(得分:-1)
更改
#drag1 {
width:74px;
height:111px;
float:right;
background-color:#0F3;
}
这与你的利润有关。和他们一起玩,我相信你会得到它。