1

这是我在画布上移动文本的代码:

paper
    .text(self.x, self.y, "Jeaaaaaaaaaaaaaaah")
    .attr({
      fill: "#000",
      dy: 0,
      dx: 0,
      font: "italic 20px Helvetica"
    })
    .drag(
    function(dx, dy) {
      this.attr({x: self.x + dx, y: self.y + dy, dy:0, dx:0});
    },
    function () {
      this.attr({x: self.x, y: self.y, dy:0, dx:0});
    },
    function () {
      self.x = this.attr("x");
      self.y = this.attr("y");
    }
  );

它的工作原理是我可以拖动文本,但前两次我拖动它的位置完全错误。

这是由这个给出的:

<text ....><tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="120">Jeaaaaaaaaaaaaaaah</tspan></text>

前两个拖放后变成

<text ....><tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="8.9734">Jeaaaaaaaaaaaaaaah</tspan></text>

它现在是可拖动的,并且它进入了确切的位置。有人知道如何避免这种情况吗?

4

1 回答 1

3

我遇到了类似的问题,最终手动更改了 tspan 的 dy 属性:

$('tspan').removeAttr('dy').attr('dy', 9);

当然,它会改变所有 tspan ty 属性。

于 2013-04-22T21:21:08.177 回答