我正在将一个应用程序从fabricjs 1.7迁移到2.4.6(最新)
我有一个与fabric.js和各种jquery-ui滑块绑定的canvas元素 画布上的元素具有一组2个过滤器。
在jquery-ui滑块滑动事件上,我更改了过滤器(卷积和亮度过滤器)值,应用了过滤器并渲染了元素(通过fabricjs的api)。但是,该更改不会立即得到反映。
即很明显,如果单击滑块中的某个位置,因为图像不会改变。但是,如果我用鼠标移动元素,或执行一些其他不包括应用滤镜的操作(例如更改Alpha,缩小,增长或旋转),则该元素将更新,并且我会看到应用滤镜的效果。 如果单击滑块中的其他位置,则会看到应用了以前的值过滤器,但没有看到最后一个。
fabricjs 1.7不会发生这种情况。
我尝试了jquery-ui滑块的各种事件。我怀疑由于某种原因,使用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);
});
当我单击滑块中的某个位置时,应立即应用新的过滤器来更新画布。