0

正方形内のカスタム フォントでテキスト要素を制限しようとしています。制約を発生させるのに苦労しています。

move 関数のコードは次のようになります。

if (this.attr("y") > offsetY || this.attr("x") > offsetX) { // keep dragging & storing original x and y
    this.attr({
        x : this.ox + dx,
        y : this.oy + dy
    });
} else {
    nowX = Math.min(offsetX, this.ox + dx);
    nowY = Math.min(offsetY, this.oy + dy);
    nowX = Math.max(0, nowX);
    nowY = Math.max(0, nowY);
    this.attr({
        x : nowX,
        y : nowY
    });
}

制約は発生しません。ただし、このコードで 2 つの正方形を使用すると、機能します。私はここで何を見落としていますか?

あなたの答えをありがとう:)

4

1 に答える 1

0

を呼び出したときにデフォルトの text-anchor 値 'middle' を使用した場合paper.text()、x 属性と y 属性はテキスト スパンの中心の座標を返します。長方形の場合のように、左上隅ではありません。

xand属性を使用するのではなく、element.getBBox()yを介して座標を取得し、結果のオブジェクトからandを使用する必要があります。これにより、既存のロジックがスムーズに機能するようになります。xy

于 2012-08-20T16:44:03.293 に答える