Я использую D3js для проекта и требую функцию масштабирования И возможность сброса масштаба.Моя проблема в том, что функции масштабирования действуют так, как будто сброса никогда не происходит.Вот код, который у меня есть:
function load() {
var svg = d3.select("body")
.append("svg")
.attr("width", "100%")
.attr("height", "100%");
var zoom = d3.zoom().on("zoom", function() {
d3.select("#vis").attr("transform", d3.event.transform);
});
var vis = svg.call(zoom).append("g").attr("id", "vis");
d3.select("body").on("keypress", function() {
if (d3.event.shiftKey) {
if (d3.event.key == "R") {
vis.transition().duration(500).attr("transform", d3.zoomIdentity);
}
}
});
vis.append("rect")
.attr("x", 10)
.attr("y", 10)
.attr("width", 100)
.attr("height", 100);
}
Вот рабочий пример проблемы: http://bl.ocks.org/nicmcd/a74b0bfba61f50d932dedd6534ad7d9e
Как получить действие сброса, чтобы сбросить внутреннее состояние возможности масштабированиятак что будущие события будут основываться на состоянии сброса?