の隅にグラフを移動:
私は、私は、コードのこの部分を編集したもの:
d3.behavior.zoomは()私はサンバーストにマウスホイールのズームを追加する代わりに、中央
var zoom = d3.behavior.zoom()
.scaleExtent([1, 10])
.on("zoom", zoomed);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width/2 + "," + height * .52 + ")")
.call(zoom);
function zoomed() {
svg.attr('transform', 'translate(' + d3.event.transform.x + ',' + d3.event.transform.y + ') scale(' + d3.event.scale + ')');
//svg.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
問題は、ページのロードのすべてがOKであると思われるときmouswheelをスクロールするために使用されている場合は、しかしサンバーストは、左上隅に終わるということです。
私はこのコードを変更することでこの問題を解決することができました:
function zoomed() {
svg.attr("transform", "translate(" + width/2 + "," + height * .52 + ")scale(" + d3.event.scale + ")");
}
太陽の爆発は今のところ中にとどまりますが、これはカーソルの位置にズームされず、さらにズームアウトできなくなります。
サンバーストを左上隅に消さずに、カーソルの場所をズームする方法(最初のコード例のように)を教えてください。
JSfiddleを参照すると、ここでは機能しませんが、ローカルで実行すると機能します。
私はあなたが提供される一つで「ズーム」機能を交換してみました:私はこの例からアイデアを得た
:結局私は、SVGにビューボックスの属性を変更することによってそれを解決しましたまだできないのですか? – CodeNoob
それは**別の**問題です。ここでは中心的な問題のみを取り上げています。問題ごとに1つの問題を残してください。 –
私はこれを私の質問で取り上げました。「これはカーソルの位置にズームすることはなく、ユーザーはさらにズームアウトできません」分かりやすくするために最後の行に追加する必要があります。私はそれを編集します。あなたはまだあなたの答えでこの問題を解決することができますか? – CodeNoob