В настоящий момент konva@4.0.16
не поддерживает полностью настроенные Konva.Transformer
. Но вы делаете хорошую попытку.
Как отключить перетаскивание для якоря ротатора, чтобы значок вообще не двигался?
Вы можетесбросить положение в событии transform
(почти так, как вы это делаете). Но в настоящий момент, из соображений производительности, внутри событий transform
все якоря имеют «старые» позиции. Итак, вы видите перетаскивание значка из rotater
якоря. Чтобы решить эту проблему, мы можем принудительно обновить преобразователь:
circle.on('transform', function(){
transformer.update();
for (var button in buttons) {
var selector = button.replace('_', '-');
var shape = transformer.findOne('.' + selector);
var icon = transformer.findOne('.' + selector + '-icon');
icon.position(shape.position());
icon.x(icon.x() - 5.25); icon.y(icon.y() - 5.25);
layer.batchDraw();
}
});
Как отключить все обработчики событий для привязки и добавить событие одним щелчком
Itможет быть что-то вроде этого:
shape.listening(false);
icon.on('click', () => {
alert('delete');
});
Демо: https://jsbin.com/galetahara/4/edit?js,output