Применение фильтра к объекту изображения, который занимает весь холст, может занять пару секунд с большими изображениями, и я хочу отобразить экран загрузки, пока это происходит, но метод .show()
не срабатывает до тех пор, пока фильтр не будет применен.
Текущий метод, применяющий фильтр:
applyFilter: function (index, filter) {
var obj = designer.baseImage,
$loading = $('#loading-canvas');
console.log('show loading');
$loading.show();
obj.filters[index] = filter;
obj.applyFilters(function () {
console.log('hide loading');
$loading.hide();
designer.canvas.renderAll();
});
}
Когда метод вызывается (при нажатии), «показать загрузку» немедленно регистрируется в консоли. Загрузочный div не отображается до тех пор, пока не будет применен фильтр, после чего экран загрузки вспыхивает, исчезает, а в консоли регистрируется «скрыть загрузку». Любые идеи, почему экран загрузки не отображается, когда в консоли регистрируется «показать загрузку»?
Редактировать: единственная цель экрана загрузки - указать пользователю, что что-то происходит.
$loading.show(0, function(){obj.filters[index] = filter; //all rest of filters logic here});
- person A. Wolff   schedule 07.05.2015