Прилагането на филтър към обект на изображение, който заема цялото платно, може да отнеме няколко секунди с по-големи изображения и искам да покажа екран за зареждане, докато това се случва, но методът .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