Диалоговое окно jQuery UI выполняет практически все, о чем вы просите. Кроме того, я не заметил, что отображение занимает очень много времени. Вам даже не нужно иметь элемент DOM для его использования. Одна приятная вещь в виджетах пользовательского интерфейса заключается в том, что вам нужно загружать только те компоненты, которые вам нужны, плюс ядро. Они также широко доступны через сети CDN, поэтому вполне возможно, что для клиента пользователя уже загружен JS.
$(function() {
$('<div title="I am a dialog"><p>Put whatever you want in here</p></div>')
.dialog({
autoOpen: true,
modal: true,
open: function(event,ui) { ... },
close: function(event,ui) {
...
$(this).dialog('destroy');
}
draggable: false,
resizable: false,
...
})
});