Показать сообщение отдельно
  #1 (permalink)  
Старый 02.02.2017, 16:31
Кандидат Javascript-наук
Отправить личное сообщение для Diphenyl Oxalate Посмотреть профиль Найти все сообщения от Diphenyl Oxalate
 
Регистрация: 21.01.2017
Сообщений: 139

Всплывающие окна
Хз зачем я это сделал

Демо-страница
dialog.js

Вызывается функцией Dialog(), которая создаёт новое окно и принимает эти параметры:

Dialog( {
	width : 400,
	height : 200,
	header : "Заголовок окна",
	body : "Содержимое окна",
	animated : false, // анимация при сворачивании, показе и скрытии
	duration : 1000, // время для всех анимаций
	modal : false, // блокировать ли содержимое страницы
	noToggle : false, // не отображать кнопку "Свернуть"
	noClose : false, // не отображать кнопку "Закрыть"
	onlyThisWindow: false, // запретить показ других окон
	onToggle : function (isOpen) {},
	onClose : function () {}
} );


Dialog() возвращает объект, помогающий в дальнейшем работать с окном:

var bx = Dialog( ... );

bx.Box;			// ссылка на DIV, содержащий все элементы окна (кроме Modal)
bx.Header;			// ссылка на заголовок окна
bx.Body;			// ссылка на тело окна
bx.ButtonClose;		// кнопка "Закрыть"
bx.ButtonToggle;		// кнопка "Свернуть/Развернуть"
bx.Modal;			// DIV, реализующий модальность окна
bx.UserData;		// объект data, переданный в Dialog( data )
bx.triggerClose();	// закрыть окно принудительно
bx.triggerToggle();	// свернуть или развернуть
bx.id;			// уникальный ID окна
bx.onToggle(isOpen);	// добавить обработчик на сворачивание/разворачивание окна
bx.onClose();		// добавить обработчик на закрытие окна

Примечательно, что в обработчик onToggle первым аргументом передаётся true, если окно на данный момент открыто и false, если свёрнуто.

Также есть глобальные свойства:

Dialog.onlyOneWindow = false; // запретить показ больше одного окна
Dialog.windows = []; // массив, содержащий данные о всех открытых окнах

Последний раз редактировалось Diphenyl Oxalate, 02.02.2017 в 17:47.
Ответить с цитированием