-1

我在画布上有一个雷达图形,其中有弧形气泡。气泡是静态的。我需要使气泡可拖动。html、css 和 javascripts 在以下链接中:

4

2 回答 2

0

我用过的一个类似的技巧是让用户用鼠标拖动不可见的气泡。

可见的不是真正的交互,而是跟随不可见的位置,除非它们在弧之外。

在鼠标释放时,您然后将不可见的气泡重置为定位在可见的上方。

于 2013-11-12T00:33:39.557 回答
0

您可以使用此 Code Pattern 让用户拖动您的气泡(圆圈)。

这是一个演示:http: //jsfiddle.net/m1erickson/WqR9F/

首先,将所有圆定义保存在对象数组中:

var circles=[];
circles.push({cx:10,cy:10,radius:20});

然后响应鼠标事件:

鼠标按下:

  • 保存当前鼠标位置 (lastX/lastY)。
  • 确定用户鼠标下方的圆圈(见下文)。
  • 设置一个标志 (isDown) 指示用户正在按住鼠标(拖动开始)

鼠标移动:

  • 确定当前鼠标位置 (mouseX/mouseY)。
  • 将每个拖动的圆圈设置为新位置:cx=mouseX-lastX 和 cy=mouseY-lastY。
  • 设置 lastX=mouseX & lastY=mouseY。
  • 重绘画布。

mouseup 和 mouseout:

  • 清除 isDown 标志(拖动结束)。

如何判断鼠标是否在圆圈内:

var dx=mouseX-circles[2].cx;
var dy=mouseY-circles[2].cy;
var rr=circles[2].radius*circles[2].radius;
var isInside= (dx*dx+dy*dy <= rr);
于 2013-11-12T01:16:40.427 回答