ボブリルにSVG要素(円)をマウスで移動したいと思います。どのライフサイクルコンポーネントメソッドを使用する必要がありますか? onPointerDown
などを使用しようとしましたが、これらのメソッドは円内のイベントのみを処理します。私はドラッグアンドドロップを使うべきですか、SVG全体を円で動かすための他のオプションがありますか?bobrilフレームワークでSVG要素を移動する方法
6
A
答えて
7
onPointerDown
、onPointerMove
とonPointerUp
コンポーネントのライフサイクルメソッド(bobril/index.tsIBobrilComponent
でより多くの情報)あなたがたがもう少しコードで必要な正確に何です。
方法であなたの文脈でbobril b.registerMouseOwner
を使用してください。
onPointerDown(ctx: ICtx, event: b.IBobrilPointerEvent) {
b.registerMouseOwner(ctx);
// Store the initial coordinates
ctx.lastX = event.x;
ctx.lastY = event.y;
return true;
},
次に、あなたのコンポーネントは、要素の外に移動してもonPointerMove
方法でマウスの動きを扱うことができます。あなたはまだあなたが現在の所有者であることだけを確認する必要があります。したがって、あなたの方法は、例えば、このように:
onPointerMove(ctx: ICtx, event: b.IBobrilPointerEvent) {
if (!b.isMouseOwner(ctx))
return false;
if (ctx.lastX === event.x && ctx.lastY === event.y)
return false;
// Call handler if it is registered
if (ctx.data.onMove) {
ctx.data.onMove(event.x - ctx.lastX, event.y - ctx.lastY);
}
// Update coordinates
ctx.lastX = event.x;
ctx.lastY = event.y;
return true;
},
登録を忘れることはありません。
onPointerUp(ctx: ICtx, event: b.IBobrilPointerEvent) {
b.releaseMouseOwner();
return true;
}
最後のポインタがコンポーネントコンテキストICtx
に座標記憶上記の例。次にそれを使用してdeltaX
と〜onMove
ハンドラを提供することができます。このハンドラは、コンポーネントのノードを作成するときに入力データによって登録できます。
関連する問題
- 1. 回転後のSVG要素の移動
- 2. イメージ要素をナビゲーションバー要素に移動する方法
- 3. 異なるルーターを持つBobrilフレームワーク
- 4. text-anchor = "start"テキスト要素をsvg要素の先頭に移動しません。
- 5. D3.js基本SVG要素と反対方向に遷移する方法
- 6. jQueryアニメーションで他の要素を移動する方法
- 7. リストnをn個の要素で移動する方法
- 8. svg要素バインディングをサポートするjsフレームワークを検索中
- 9. Ext js:DOM内の要素を移動する方法
- 10. 別の要素をドラッグしてsvgイメージを移動するには?
- 11. クリックコマンドでSVGパス要素を別のSVGパス要素に変換する方法は?
- 12. javascriptでSVG要素スタイルを操作する方法は?
- 13. SVG Circle要素でdata- *属性を使用する方法
- 14. Snap SVGで要素をグループ化解除する方法
- 15. SVGマスクを移動する
- 16. CSS :: after要素を要素に移動
- 17. Bobril
- 18. 移動要素が
- 19. zendフレームワークでカスタムフォーム要素fckeditorを追加する方法
- 20. PlayフレームワークでXML要素名を制御する方法
- 21. javascriptで移動する要素
- 22. SVG要素の内容を別のSVG要素にコピーして同期を維持する方法
- 23. 1つのSVG要素のポイントから別のSVG要素をポイントする方法は?
- 24. Amcharts:valueAxis SVG要素に変換を適用する方法を
- 25. SVG要素を透明にする方法(SVGwebを使用)
- 26. CodeIgniter - データベース要素を移動
- 27. ドロップダウンメニューの要素を移動
- 28. スクロールで水平方向に要素を移動する
- 29. SVGをVueで移動する
- 30. 異なる位置でウィジェットの要素を移動する方法html/css?
マルチタッチフレンドリーにするために 'event.id'をチェックし、後で他のすべてのポインタIDを無視するだけです。そして、ブラウザが決定したので、すべてのあなたの行動をロールバックすべき 'onPointerCancel'でもよく聞いてください。 – Bobris