当鼠标经过其他页面元素时,Konvas拖动算法会导致跳过 - 在1.6.2中分解,在1.6.3

时间:2017-05-24 15:59:58

标签: javascript konvajs

在这个片段中,当我在Konvas画布周围拖动绿色矩形时,一切都很好。但是,当我继续拖动并且鼠标移动到顶部栏上时,例如,绿色矩形跳跃'在鼠标指针下。

我做错了吗?

感觉拖拽代码使用的是相对于'下的元素的mousemove事件参数。指针,而不是页面。就像event.clientX& Y代替event.pageX&是的。

编辑:我在画布上添加了一个绝对定位的灰色div - 尝试在画布上拖动绿色矩形,使鼠标经过灰色框。跳跃跳跃的跳跃。



// add a stage
var s = new Konva.Stage({
  container: 'container',
  width: 400,
  height: 400
});

// add a layer        
var l = new Konva.Layer();
s.add(l);

// Add a green rect to the LAYER
var green = new Konva.Rect({stroke: 'lime', width:100, height: 100, draggable: true, x: 20, y: 20});
l.add(green);

l.draw()

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/konvajs/konva/1.6.2/konva.min.js"></script>


<body>
  <div id="top"  style='width: 600px; height: 50px; border: 1px solid #ccc;'><span>Top bar</span>
  <span> Pos: </span><span id='pos'> Drag the green rect, watch it jump when mouse moves over this bar.</span>
  </div>

  <div id="container"  style='width: 600px; height: 500px; border: 1px solid #ccc;'></div>

  <div id="blob"  style='width: 40px; height: 40px; border: 1px solid #ccc; background-color: #ccc; position: absolute; left: 250px; top: 80px;'></div>


</body>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

这是一个错误。它已使用新版本v1.6.3修复,现在它应该按预期工作。