Плагин jqModal поможет вам вывести на странице предупреждения, диалоговые и модальные окна. Плагин гибок в настройках и является хорошей базой для показа всплывающих окон.
Источник
Скачать
- (CSS)
- (дополнительный функционал)
Примеры
Описание
- Легкость настройки – использование ваших HTML+CSS структуры и стилей
- Легко перевести интерфейс
- Легко изменять – расширяемость функционала через callbacks-функции, что позволяет делать приложения разной сложности (слайд-шоу галереи, видео-презентации и т.д.)
- Простая поддержка подгрузки содержания (aka «AJAX»)
- Поддержка нескольких окон одновременно (в том числе окно-в-окне)
Установка
Необходимо подключить плагин, файл со стилями и опционально скрипт позволяющий
Настройка
Кэширование изображений
Некоторые браузеры не подгружают изображения и фоновый картинки, если они используются в спрятанном элементе (у родительского элемента заданы свойства display:none или hidden). Это может привести к тому, что графическое оформление всплывающего окна будет загружено только после вызова окна. На странице примеров используется дополнительный код, обеспечивающий предзагрузку изображений оформления окна.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!-- optional: image cacheing. Любые картинки, расположенные внутри этого блока будут загружены (они размещаются за пределами экрана) и закэшированы --> <style type="text/css"> /* Caching CSS created with the help of; Klaus Hartl <klaus.hartl@stilbuero.de> */ @media projection, screen { div.imgCache { position: absolute; left: -8000px; top: -8000px; } div.imgCache img { display:block; } } @media print { div.imgCache { display: none; } } </style> <div class="imgCache"> <img src="inc/busy.gif" /> <img src="dialog/close.gif" /> <img src="dialog/sprite.gif" /> <img src="dialog/close_sprite.gif" /> <img src="dialog/bl.gif" /> <img src="dialog/br.gif" /> <img src="dialog/bc.gif" /> <img src="notice/note_icon.png" /> <img src="notice/close_icon.png" /> </div> |
Чтобы добавить диалоговое окно, фрейм или любое другое окно на сайт вам нужно:
Добавить на страницу контейнер (контейнеры) для всплывающих окон
В роли контейнера обычно выступает скрытый <div>, дочерний элемент <body>. CSS использутся для настройки внешнего вида и позиционирования. Этот блок будет отображен при наступление заданного события. Содержимое блока(текст/картинки/другое) может быть размещено в нем сразу (непосредственно в HTML) или может быть добавлено через ajax,в момент показа блока.
Инициализация
jqModal может быть вызван для любого скрытого элемента при помощи функции $.jqm(). Вы можете настроить ваше окно передавая параметры при инициализации плагина, на пример:
1 | $('#dialog').jqm({modal: true, trigger: 'a.showDialog'}) |
$.jqm() должен вызываться только один раз для элемента! В особых случаях допускается повторный вызов – если вам необходимо изменить указанные ранее параметры. Повторный вызов $.jqm() обновит параметры вызова диалогового окна.
Вызов окна
Окно будет автоматически вызвано после клика по указанному элементу. Вы также можете показать окно вызвав функцию $.jqmShow()
Функции:
jqm - инициирует элемент(ы) используемые как jqModal. Можно передать в качестве параметра объект. Если элемент(ы) уже инициированы, то повторный вызов обновит параметры.
1 2 | $('#dialog').jqm(); $('.dialogs').jqm({ajax:'@href',modal:true}); |
jqmShow – показывает jqModal элемент(ы).
1 2 | $('#dialog').jqmShow(); $('.dialogs').jqmShow(); |
jqmHide – скрывает jqModal элемент(ы).
1 2 | $('#dialog').jqmHide(); $('.dialogs').jqmHide(); |
- (строка) jQuery селектор
- (объект) jQuery коллекция
- (объект) DOM элемент
1 2 | $('#dialog').jqmAddTrigger('.openDialog'); $('.dialogs').jqmAddTrigger($('#openDialogs a')); |
jqmAddClose – Добавляет элемент(ы) вызывающие скрытие окна. Клик по ним приведет к скрытию окна jqModal. Возможные значения:
- (строка) jQuery селектор
- (объект) jQuery коллекция
- (объект) DOM элемент
1 2 | $('#dialog').jqmAddClose('.hideDialog'); $('.dialogs').jqmAddClose($('#hideDialogs a')); |
Параметры:
-
параметрзначение по умолчаниюописание
-
overlay50Прозрачность перекрывающего всю страницу слоя. При значение 0 все элементы страницы остаются активными
-
overlayClass‘jqmOverlay’Класс указанный у перекрывающего слоя
-
closeClass‘jqmClose’Когда окно показано, при клике по элементу с этим классом окно будет закрыто. Например если у вас есть <img class=»closeClass» src=»close.gif»> то по клику на этой картинке окно будет закрыто. Так же для закрытия можно использовать функцию $.jqmHide(). Возможные значения – строка|false
-
trigger‘.jqModal’Элемент(ы) по клику на которых будет выведено модальное окно. Возможные значения – строка (селектор jQuery)|объект|false
-
ajaxfalseЕсли параметр установлен, то данные будут загружены методом ajax. Вы можете указать url ($.jqm({ajax:’remote/dialog.html’})) или получить путь из значения какого-либо атрибута элемента-триггера ($(.jqm({ajax:’@href’})). Значения – строка|false
-
ajaxText» «Применим, только если определен параметр ajax. Строка, текст отображаемый до момента загрузки данных. Можно использовать html-теги. На пример $.jqm({ajaxText: ‘<marquee style=»width: 1.5em;»>.. … .</marquee>’});
-
targetfalseПрименим, только если определен параметр ajax. Если параметр определен, то данные от ajax будут загружены в указанный элемент. Этот элемент обязательно должен быть потомком вызываемого окна. Возможные значения – строка (селектор jQuery)|объект ($.jqm({target: $(‘#dialog div.contents’)[0]}))|false
-
modalfalseОграничивает ввод (клик мышкой, клавиатура) в окне. Обратите внимание: если установлено как false и задан параметр overlay, то клик по области за пределами окна приведет к его закрытию
-
toTopfalseПри значение true добавляет элементы окна непосредственно как детей элемента <body>. Это делается чтобы избежать проблем с Z-индекс при перекрытие данных страницы
-
onShowfalseПользовательская функция, вызываемая при показе диалогового окна
-
onHidefalseПользовательская функция, вызываемая при скрытие диалогового окна
-
onLoadfalseПользовательская функция, вызываемая когда данные ajax загружены
Оставьте свой комментарий