Я использую плагин Overlay из jQuery Tools: http://flowplayer.org/tools/overlay/index.html для отображения полноразмерного изображения при нажатии на ссылку, но наложение отображается сразу и показывает загрузку изображения.
Я хотел бы изменить это поведение и дождаться загрузки изображения, прежде чем запускать наложение. Плагин Overlay имеет свойство onBeforeLoad, к которому может быть присоединена функция обратного вызова. Но, конечно, отображение наложения возобновляется, как только выполняется этот обратный вызов, и не будет ожидать запуска события загрузки изображения.
Плагин имеет несколько методов API, но они не кажутся очень полезными для моей цели.
В моем примере ниже две закомментированные строки должны дать вам представление о том, что, по моему мнению, может работать, но не работает.
Вот упрощенный тестовый пример: http://jsfiddle.net/GlauberRocha/9jkU5/
Есть идеи?
var $trigger = $("#trigger"),
api;
$trigger.overlay({
fixed: true,
mask: {
color: "#000",
opacity: .8
},
onBeforeLoad: function() {
console.log("onBeforeLoad");
api = $trigger.data("overlay"); // see http://flowplayer.org/tools/overlay/index.html "Scripting API"
//api.close(); // Temporarily "close" the overlay?
setTimeout(function() { // This will be replaced by the image load event
console.log("Waiting is over!");
//api.load(); // Load the overlay now?
}, 2000);
},
onLoad: function() {
console.log("onLoad");
}
});