Sto usando d3.behavior per collegare un evento di zoom al mio SVG, quindi viene utilizzata la rotellina del mouse Posso ottenere un evento di zoom con traslazione e scala che poi uso per impostare l'attributo transform dell'elemento.D3js: Come si cancella la scala di zoom impostata dall'evento d3.zoom?
Sembra che il valore di zoom.scale sia persistente da qualche parte così ogni volta che si utilizza la rotellina del mouse, esso contiene sempre il valore di zoom corretto, tenendo conto di tutti gli eventi di zoom precedenti. Questo è bello, ma ho bisogno di un modo per cancellare quel valore, ad esempio un pulsante di zoom di reset. Quando l'utente ha fatto clic sul pulsante, la volta successiva che scorre per eseguire lo zoom, l'elemento verrà ridimensionato nuovamente dalle dimensioni originali.
Quindi dove memorizza D3 questo valore e come lo si ripristina?
UPDATE:
Questa domanda ha anche un altro aspetto in esso: se a livello di codice impostato il "trasformare" l'attributo di fare una trasformazione di scala, l'evento dello zoom non tenerne conto. Quindi, se in seguito utilizzo la rotellina del mouse per lo zoom, mi sto avvitando perché posso cestinare la trasformazione originale. Quindi ho bisogno di un modo per impostare in modo programmato, non solo per resettare, il valore "translate" e "scale" dell'evento zoom, ovunque sia memorizzato.
Nota questo commento di qualcuno con un problema simile sul forum del gruppo google d3: https://groups.google.com/d/msg/d3-js/-qUd_jcyGTw/ksHIZi7baCsJ – mg1075