KineticJS:拖放后绘制的图像不在拖放目标中
KineticJS: The drawn image after drag and drop is not in the drop target
这是我到现在为止写的代码:http://jsfiddle.net/wQ8YA/1/
我想实现一个拖拽&drop使用jQuery和KineticJS。我这样做了,除了一些细节之外,它工作得很好:
1-当我拖动某些东西(形状/图像)时,它会被拖到网格的"后面",只有当我松开鼠标时才会出现。
2-落点不是图像渲染的地方,它不是在我放下它的地方绘制的!只有当我决定将拖放区域设置为网格时,这个问题才会出现。
3-我不能移动一组形状(矩形+其中的图像)
我需要帮助,请告诉我,如果我错过了一行或一个细节的代码。下面是dragDrop函数。要查看整个代码并更好地理解我的问题,请参阅上面的代码
$stageContainer.droppable({
drop: dragDrop
});
// handle a drop into the Kinetic container
function dragDrop(e, ui) {
// get the drop point
var x = parseInt(ui.offset.left - offsetX, 10);
var y = parseInt(ui.offset.top - offsetY, 10);
// get the drop payload (here the payload is the image)
var element = ui.draggable;
var data = element.data("url");
var theImage = element.data("image");
// create a new Kinetic.Image at the drop point
// be sure to adjust for any border width (here border==1)
var image = new Kinetic.Image({
name: data,
x: x,
y: y,
image: theImage,
draggable: true
});
layer.add(image);
var $clone = ui.helper.clone();
if (!$clone.is('.inside-droppable')) {
$(this).append($clone.addClass('inside-droppable').draggable({
containment: $stageContainer,
tolerance: 'fit',
position: 'relative'
}));
if ($clone.is(".imag") === false) {
$clone.resizable({
containment: $stageContainer
});
}
}
}
修复#1(拖动对象在画布后面):在html中将动态容器放在手风琴的前面。
修复#2当jQuery调整手风琴大小时,dropzone被移到右边,所以你需要在手风琴大小后重新计算offsetX和offsetY
修复#3你可以创建一个可拖动的动能。分组,并把你的孩子的形状放在这个组里。当组被拖动时,子组也会被拖动。
干杯!
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- HTML/CSS-用于拖放的全页面覆盖
- Rubaxa可与聚合物进行排序/拖放不起作用,具体取决于显示器:
- dblclick事件是在jquery拖放后触发的
- 无法进行拖放以使用本地存储
- 如何使用Java脚本创建提交按钮's的拖放功能
- Chrome原生拖放相对容器并不能正确渲染重影
- 如何在Javascript中创建排序、拖放多级列表
- html5拖放文件-在提交整个表单时上传
- 在jQuery UI中获取ul和li值,拖放即可排序
- 如何在剑道网格中直观地识别拖放过程中的放置目标
- 如果放置目标被完全占用,则不会触发HTML5-拖放-ondragover事件
- jQuery:拖放:找到目标的类并禁用拖放
- 将拖放目标附加到拖放对象上
- 如何添加一个可拖放的目标id到if语句来检查正确的答案
- 在拖放时获取目标和源ID
- 在不知道目标位置的情况下拖放目标
- KineticJS:拖放后绘制的图像不在拖放目标中
- Jstree免打扰插件:不能在目标上拖放多个节点而不覆盖之前拖放的节点