javascript - 单击可拖动层顶部时如何获得准确的指针位置?

标签 javascript html canvas kineticjs

我刚刚开始学习 Kinetic.js,我真的很享受使用 HTML5 使它变得如此简单 <canvas>元素。

我有一个比“舞台”(使用动力学术语)大但可以拖动的大层。拖动功能似乎以两种不同的方式干扰点击处理程序:一些单击没有注册;并且在那些这样做的人中,只有当图层位于其原始位置时,位置才是准确的。

Here's a fiddle显示我遇到的问题。在我的实际代码中,底层实际上是一个图像。

最佳答案

http://jsfiddle.net/EKaAv/1/

layer.on ('click', function(e) {
    console.log(e);
    var mousePos = stage.getMousePosition(); // mouse position relative to stage
    var xclick = mousePos.x;
    var yclick = mousePos.y;
    var circle = new Kinetic.Circle({
        x: xclick - layer.getX(), // since position is relative to stage, adjust by layer X
        y: yclick - layer.getY(), // same as above
        radius: 25,
        fill: 'red',
        opacity: 0.5
    });
    layer.add(circle);
    stage.draw();       // redraw the stage immediately
});

任何似乎未注册的点击都是由于触发了覆盖点击事件的可拖动事件。

关于javascript - 单击可拖动层顶部时如何获得准确的指针位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843527/

相关文章:

javascript - 使用 javascript 旋转 div

javascript - 如何允许我的java脚本将相对URL解析为~/在razor View 中执行的操作

javascript - 即使显式设置了宽度和高度,div 也会扩展以适应内容

javascript - 如果不知道之前做了什么,如何恢复到默认状态?

asp.net - Web 开发人员可用的最佳 HTML 所见即所得编辑器是什么?为什么?

javascript - 如何取消绑定(bind)元素然后允许该元素再次绑定(bind)

javascript - 引用第二列中的对象

html - Flex div 在移动浏览器中显示不正确

jquery - 无法在 TreeView 中从 Font Awesome 切换类

javascript - Firefox:drawImage(video) 失败并显示 NS_ERROR_NOT_AVAILABLE:组件不可用