D3.jsでズーム動作を実装しようとしていますが、これはblockに従います。D3.jsのsetTimeout
ブロック内にこのコードがありますが、わかりません。 setTimeout
がどのように動作するのかはわかりますが、どのように、なぜこのように使用されているのか、残りのコードとどのように適合しているのかは不明です。
私はデバッグを試み、各ブレークポイントを細心の注意を払って行ってきましたが、大きな絵の目的か、各段階で何が起こっているのか分かりません。 (コードの一部を説明する)質問のこのタイプは、スタックオーバーフローのために適切であるが、私は本当にただソリューションを貼り付けるコピーの代わりに、ここで何が起こっているか理解したい場合は
function brushended() {
var s = d3.event.selection;
if (!s) {
if (!idleTimeout) return idleTimeout = setTimeout(idled, idleDelay);
x.domain(x0);
y.domain(y0);
} else {
x.domain([s[0][0], s[1][0]].map(x.invert, x));
y.domain([s[1][1], s[0][1]].map(y.invert, y));
svg.select(".brush").call(brush.move, null);
}
zoom();
}
function idled() {
idleTimeout = null;
}
わかりません。誰かがこれを説明できるなら、それはすばらしいでしょう。ありがとう。
嬉しいです。私はまったく同じボートにいた。最後に、私は以下の回答からいくつかの理解を持っていると思う。私はMike Bostockのコードが良くコメントされたことを願っています。 –