エディタで使用するためにd3視覚化ドラッグ可能なテキストを作成したいとします。私は例(http://bl.ocks.org/mbostock/4063550)のeで遊び始めました。テキスト要素にdragbeheavierを追加すると、ChromeDevToolsから何かがドラッグされることがわかりますが、そのドラッグの視覚的表現はありません。私もJQuery UIを使ってやってみました。何が恋しいのですか?d3.jsを使用してSVGテキストをドラッグ可能にする
5
A
答えて
11
drag.behaviourを使用すると、要素にドラッグイベントを追加できます。
var drag = d3.behavior.drag()
.on("drag", dragmove);
3)バインド:ハンドラとして上記の機能を使用して、ドラッグ動作を作成)
function dragmove(d) {
d3.select(this)
.style("top", ((d3.event.sourceEvent.pageY) - this.offsetHeight/2)+"px")
.style("left", ((d3.event.sourceEvent.pageX) - this.offsetWidth/2)+"px")
}
2:
1)()タイプd3.eventのドラッグイベントを処理する関数を作成d3選択で.call
を使用して要素または要素のセットに追加する:
d3.select("body").append("div")
.attr("id", "draggable")
.text("Drag me bro!")
.call(drag)
はそれを試してみてください。http://jsfiddle.net/HvkgN/2/ここ
は、同じ例は、adapted for an svg text elementです:
function dragmove(d) {
d3.select(this)
.attr("y", d3.event.y)
.attr("x", d3.event.x)
}
var drag = d3.behavior.drag()
.on("drag", dragmove);
d3.select("body").append("svg")
.attr("height", 300)
.attr("width", 300)
.append("text")
.attr("x", 150)
.attr("y", 150)
.attr("id", "draggable")
.text("Drag me bro!")
.call(drag)
2
SVG要素にドラッグ追加するより良い見栄えの方法は、周りのドラッグ可能な要素を移動させる変換の変換を使用することです。これをd3.event.dxとd3.event.dyを使用してマウスの動きを監視するドラッグイベントハンドラと組み合わせます。
var transX = 0;
var transY = 0;
var theElement = d3.select('svg#xyz text.blahblah').attr('transform', "translate(" + transX + ", " + transY + ")");
var repositionElement = function(data) {
transX += d3.event.dx;
transY += d3.event.dy;
theElement.attr('transform', "translate(" + transX + ", " + transY + ")");
};
var addDragging = function (element) {
element.call(d3.behavior.drag().on('drag', repositionElement));
};
addDragging(theElement);
また、Xを変化させるとは異なり/ Y直接、この技術は全体<g>
基でドラッグするために使用することができるので、ときにユーザーがクリックとグループの任意の部分をドラッグし、グループ全体で移動します!
関連する問題
- 1. d3.jsドラッグ動作を使用してsvgグループをドラッグする方法は?
- 2. d3グループをドラッグ可能にする
- 3. Jquery-svgを使用してSVGをドラッグ可能な初期位置
- 4. D3.jsを使用してrectにテキストを表示する
- 5. SVGライン - d3.js
- 6. 角度を使用して1ページに複数のD3ドラッグ可能/ズーム可能なツリーを表示
- 7. D3 v4ドラッグ可能な要素をクリック
- 8. ブートストラップモーダルをドラッグ可能にして、バックグラウンドを使用可能にする
- 9. D3.jsでSVG内のテキストを整列する方法
- 10. d3.jsで問題をドラッグ
- 11. Phantomjsを使用してD3.jsからSVGグラフを出力する
- 12. react.jsを使用してd3.jsのsvg要素をレンダリングする方法は?
- 13. IEで動作していないd3 jsを使用するSVGフィルタ
- 14. D3.js背景としてのカスタムSVG
- 15. SVGパスの一部をドラッグ可能/拡張可能にする方法
- 16. D3 JS - SVG矩形を含むグループがドラッグにスムーズに変換されない
- 17. D3を使用してページにSVGを追加する方法
- 18. 作成方法<g> svgコンテナ内のsvg-groupをドラッグ可能にする
- 19. D3 js - ドラッグ・アンド・ドロップのラベルやテキストを追加
- 20. D3ドラッグ可能なサークルにラベルを付ける
- 21. を使用して円の真ん中にテキストを配置します。 d3.js
- 22. マーカーをドラッグ可能にしてクリック可能にする
- 23. D3.js - SVGにLinearIconを追加
- 24. フォース・ドラッグ・グラフD3.jsエラー
- 25. D3.jsサイズ変更とドラッグ
- 26. 角2.0とD3.jsはsvgにCSSを適用しません
- 27. d3.js svg overlay to google map
- 28. D3.js SVGイメージのバウンディングボックスオフセット
- 29. d3.jsを使用してc3.jsチャートを変更する
- 30. svgテキストをd3.jsの凡例に合わせて並べ替え
申し訳ありませんが、私が意味するものではありません。ドラッグする必要があるSVGテキスト要素があります。コール(ドラッグ)に応答しません。 – chenninger
@chenningerここの例は何ですか? – Phrogz
@chenninger svgテキスト要素の例を更新しました!混乱させて申し訳ありません。 – minikomi