Я использую график D3 рядом с Google Map. Я хочу, чтобы график переключался всякий раз, когда изменяется масштаб карты. Он отлично работает, если масштаб не изменяется быстрее, чем переход завершен. Тем не менее, дважды нажмите дважды, что приведет к сломанным переходам.D3.js: Не начинайте новый переход до завершения предыдущего?
Как я могу остановить следующий переход, начинающийся до завершения предыдущего перехода?
Это мой код (это Backbone приложение):
render: function() {
this.renderMap();
},
renderMap: function() {
var that = this;
...
google.maps.event.addListener(that.mapControl, 'zoom_changed', function() {
that.change();
});
},
change: function() {
var that = this;
d3.transition().duration(750).each(function() {
that.redraw();
});
},
redraw: function() {
...
this.redraw = function() {
...
var barUpdate = d3.transition(bar).attr("transform", function(d) {
return "translate(0," + (d.y0 = y(d.State)) + ")";
}).style("fill-opacity", 1);
};
}
Мне нравится эта идея. У меня есть около 20 событий, которые мне нужно запускать, как «курсор», развертки по графику. Я сделаю это и посмотрю. –
Каждый должен иметь в виду эту важную заметку из документации: «Обратите внимание, что если переход заменяется более поздним плановым переходом на данный элемент, для этого элемента не будет отправлено конечное событие; прерванные переходы не запускают конечные события. – JLewkovich