Я переношу приложение с fabricjs 1.7 на 2.4.6 (последняя версия)
У меня есть элемент canvas, привязанный к fabricjs и различным ползункам jquery-ui. Элемент на canvas имеет набор из 2 фильтров.
В случае события слайдера jquery-ui я изменяю значение фильтра (сверточный фильтр и фильтр яркости), применяю фильтры и отрисовываю элементы (через API-интерфейс fabricjs).Однако изменение не отражается сразу.
т.е. очевидно, что если я щелкну где-нибудь на слайдере, изображение не изменится.Но если я перемещаю элемент с помощью мыши или выполняю какую-либо другую операцию, которая не включает применение фильтра, например, изменение альфа-канала, сжатие, увеличение или вращение, тогда элемент обновляется, и я вижу эффект применения фильтра.Если я щелкну где-нибудь еще в ползунке, я увижу предыдущий фильтр значений, но не последний.
Этого не произошло с fabricjs 1.7.
Я пробовал различные события jquery-и слайдер.Я подозреваю, что использование jquery-ui по какой-то причине препятствует обновлению холста ...
function setImageBrightness(imagen, brightness) {
imagen.filters[1]['brightness'] = brightness;
imagen.applyFilters();
canvas.renderAll();
}
$("#brilloIzquierdo").slider({
min : -255,
max : 255
});
$("#brilloIzquierdo").on("slide", function(event, ui) {
brillo = ui.value;
$("#vBrilloIzq").text(brillo);
setImageBrightness(canvas.item(idxIzquierdo), brillo);
});
Когда я щелкаю где-то на слайдере, холст должен быть немедленно обновлен с применением нового фильтра.