Хорошо, определите переменную, которая содержит текущее значение масштабирования, и увеличивайте его каждый раз:
var currentZoom = 0;
zoomIn() {
const $container = $('.container');
this.instance = panzoom($container[0], {
maxZoom: 2,
minZoom: 0.4,
smoothScroll: false,
zoomSpeed: 0.015
pinchSpeed: 0.015,
bounds: true,
boundsPadding: 0.05,
beforeWheel(e) {
const shouldIgnore = !e.altKey;
return shouldIgnore;
},
zoomDoubleClickSpeed: 1,
transformOrigin: {x: 0.5, y: 0.5}
});
const width = document.querySelector('.container').getBoundingClientRect().width / 2;
const height = document.querySelector('.container').getBoundingClientRect().height / 2;
this.instance.smoothZoom(width, height, ++currentZoom);
}
Я использовал 0 в качестве первого значения, но я не знаю, так ли это. Теперь при каждом нажатии кнопки значение увеличения увеличивается. Если есть максимальное значение для увеличения, вы можете сделать:
...
currentZoom = min(maxZoom, currentZoom + 1);
this.instance.smoothZoom(width, height, currentZoom);
Таким образом, когда currentZoom
равно maxZoom
, оно больше не будет увеличиваться.
Теперь, если у вас есть несколько объектов, которые можно увеличить, вам нужно организовать текущее состояние для каждого одного, но я оставлю это вам.
Надеюсь, это поможет.