У меня есть interactive map. Эта карта может быть увеличена с помощью кнопок. Эти кнопки уже работают, но мне не нравится текущий стиль. Он не чувствует себя UX-совместимым, когда нажав кнопку, карта немного встряхивается. Вместо этого я хотел бы увеличить масштаб карты.Увеличить мягко в центр карты D3
Здесь зум в код на кнопку :
d3.select('#zoomplusbutton').on('click', function() {
ardamap.zoomByFactor(1.3);
});
А вот код функции со странным масштабированием:
zoomByFactor: function (factor) {
d3.event.preventDefault();
var scale = zoom.scale();
var extent = zoom.scaleExtent();
var newScale = scale * factor;
if (extent[0] <= newScale && newScale <= extent[1]) {
var t = zoom.translate();
var c = [width/2, height/2];
zoom
.scale(newScale)
.translate([c[0] + (t[0] - c[0])/scale * newScale, c[1] + (t[1] - c[1])/scale * newScale])
.event(g.transition());
}
}
Я действительно больше не знаю Я получил код масштабирования.
Итак, как я могу повернуть масштаб в центр карты мягко? Не стесняйтесь изменять JS-код на веб-сайте.
Вы не можете указать продолжительность перехода? – thatOneGuy
Обычно я могу. Но я действительно не знаю, разрешила ли это длительность здесь все остальные вопросы. Как я уже сказал, я не знаю, откуда у меня этот код. Слишком давно. – kwoxer
хорошо, что не поможет тогда, если вы не знаете свой код lol, как вы собираетесь что-то решить, когда забыли, что он включает в себя:/ – thatOneGuy