Kineticjs和hammerjs:拖动舞台时正确更新鼠标位置
Kineticjs and hammerjs: Update Mouseposition correctly when stage was dragged
所以,我有一个可拖动的舞台,我向它添加了新的形状(双击/点击)。现在我的问题是,当我拖动舞台并在它之后创建一些新对象时,我的对象在舞台的错误位置上创建。这是我迄今为止的代码(摘录):
$('#toolbox_container').hammer().on('doubletap', function(e) {
//console.log('x:' + e.gesture.center.pageX + ' y: ' + e.gesture.center.pageY);
var xPos = e.gesture.center.pageX - this.offsetLeft;
var yPos = e.gesture.center.pageY - this.offsetTop;
// call addnode with position of tap/mouse
addNode(xPos, yPos);
});
在这里添加更多行之前,我制作了这个简化的jsfiddle来显示问题所在。只需双击(/tap)舞台即可。然后拖动舞台。然后,双击=>错误的位置:http://jsfiddle.net/4vfBY/7/
如果有人能在这里帮我就太好了。我认为我的问题是错误地定义了xPos和yPos,但我对如何做到这一点没有更好的想法。
谨致问候,Dominik
所以,现在就开始工作了。我所要做的就是在拖动后从舞台上获得X和Y坐标,并将它们添加到我的xPos/yPos中,如下所示:
$('#toolbox_container').hammer().on('doubletap', function (e) {
stageX = stage.getX();
stageY = stage.getY();
var xPos = e.gesture.center.pageX - this.offsetLeft - stageX; //apply stageX
var yPos = e.gesture.center.pageY - this.offsetTop - stageY; //apply stageY
// call addnode with position of tap/mouse
addNode(xPos, yPos);
});
你可以在这里看到一个工作演示:http://jsfiddle.net/s9PAD/1/
相关文章:
- jquery select()/window.get选择仅在鼠标抬起后更新
- 将鼠标悬停在字符串上并更新预览
- 在鼠标事件上更新画布
- 当鼠标空闲时强制 Chrome 光标更新原版 JavaScript
- 这个可重用的 AngularJS 服务如何在鼠标移动时更新
- 仅当没有鼠标事件时才更新页面
- 更新 DOM 后“鼠标向上”出现问题
- D3.js基于鼠标移动的更新行
- d3.js:如何使用鼠标洗涤器工具提示单击更新图表
- 传单-onEachFeature鼠标悬停更新表的innerHTML
- 如何在鼠标悬停时更新repeat中元素的样式
- 使用鼠标时,jquery上的onPaste事件未更新
- Kineticjs和hammerjs:拖动舞台时正确更新鼠标位置
- 在鼠标悬停时更新第二个图表
- 在Angular 2中,直到鼠标悬停,组件变量才会在视图中更新
- setInterval更新ajax列,除非鼠标悬停
- 鼠标悬停不工作在整个网站wordpress更新后
- 如何在另一个元素的鼠标事件上更新元素的类?
- 单选按钮状态在鼠标上升或点击时没有更新
- html5 canvas - JavaScript-将鼠标X和Y位置存储在变量中,并在鼠标移动时不断更新它们