gpt4 book ai didi

javascript - 在指针上居中拖放代理

转载 作者:行者123 更新时间:2023-11-29 19:59:07 25 4
gpt4 key购买 nike

我正在使用 ExtJS 拖放并尝试将拖动代理置于光标下方的中心(代理:代表被拖动元素的半透明填充物)。我可以像这样在物理上将它居中,但之后它不会正确下降:

view.dragZone = Ext.create('Ext.dd.DragZone', view.getEl(), {

onStartDrag: function(x, y) {
this.setDelta(150, 20); // (the element is 300 x 40)
},

//.. other DD configs

});

当我使用它并将光标移动到放置区时,它只是滑回原始位置,就好像我将它随机放置在某个地方一样。

如果我不使用它,光标位于对象 NW 约 20 像素处(即不居中),但我可以将其完全放置在放置区中。

我认为这可能与光标没有直接放置区域有关,因为它现在直接在拖动代理上。我尝试重置拖放区的 z-index 以尝试将其置于拖动代理的上方,但这似乎不起作用。尝试了其他一些不值得一提的极其随机的事情。

有没有人成功设置拖放,使拖动代理以光标为中心?

最佳答案

我能够将代理居中并在 grid drag/drop plugin 的实时预览中看到它正确下降.

Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name'],
data: [["Lisa"], ["Bart"], ["Homer"], ["Marge"]],
proxy: {
type: 'memory',
reader: 'array'
}
});

var p = Ext.create('Ext.grid.Panel', {
store: 'simpsonsStore',
columns: [
{header: 'Name', dataIndex: 'name', flex: true}
],
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop',
dragText: 'Drag and drop to reorganize'
}
},
height: 200,
width: 400,
renderTo: Ext.getBody()
});

p.view.plugins[0].dragZone.onStartDrag = function() {
this.setDelta(80, 10);
};

Ext.view.DragZone 看起来与 Ext.dd.DragZone 没有太大区别。然而,Ext.view.DropZone 添加了相当多的逻辑来检查记录被丢弃的位置。我猜这个逻辑可能就是为什么网格拖放插件可以正常工作的原因。

关于javascript - 在指针上居中拖放代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15261167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com