D3js: Jak usunąć skalę powiększenia ustawioną przez zdarzenie d3.zoom?

Używam d3.behavior, aby dołączyć zdarzenie zoom do mojego SVG, więc kółko myszy jest używane Mogę uzyskać zdarzenie zoom z translacją i skalą, które następnie używam do ustawienia atrybutu transformacji elementu.

Wydaje się, że wartość zoom.scale jest gdzieś trwała, więc za każdym razem, gdy używane jest kółko myszy, zawsze zawiera ona poprawną wartość zoomu, biorąc pod uwagę wszystkie poprzednie zdarzenia powiększenia. To jest fajne, ale potrzebuję sposobu na wyczyszczenie tej wartości, powiedz przycisk resetowania zoomu. Gdy użytkownik kliknie przycisk, następnym razem, gdy przewinie, aby powiększyć, element będzie ponownie skalował się od oryginalnego rozmiaru.

Gdzie więc D3 przechowuje tę wartość i jak ją zresetować?

AKTUALIZACJA:
To pytanie ma również inny aspekt: ​​jeśli programowo ustawię atrybut „transform” na transformację skalującą, zdarzenie zoom nie uwzględni ich. Więc jeśli później użyję kółka myszy do powiększenia, to jestem przykręcony, ponieważ mogę zniszczyć oryginalną transformację. Dlatego potrzebuję sposobu na programowe ustawienie, nie tylko resetowania, wartości „translacji” i „skalowania” zdarzenia powiększania, niezależnie od tego, gdzie są one przechowywane.

questionAnswers(1)

yourAnswerToTheQuestion