Меню


Реальный пиарJavaScriptJquery → jQuery UI. Widgets. Dialogs (Окна)

jQuery UI. Widgets. Dialogs (Окна)

размер окна

Иногда перед веб-программистом встает задача вывести что-то в окне, будь то уведомление или форма регистрации.
И вот наконец-то появилось простое и функциональное средство! Виджет jQuery UI - Dialog ...
Вообщем не жизнь, а сказка! :)

Если вдруг кто не видел предыдущию статью, то повторюсь:
Скачиваем jqueryui и подключаем все это дело: view source
1
<link type="text/css" href="css/ui-lightness/jquery-ui-1.7.2.custom.css" rel="stylesheet" />
2
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
3
<script src="js/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>
view source
1
<link type="text/css" href="css/ui-lightness/jquery-ui-1.7.2.custom.css" rel="stylesheet" />
2
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
3
<script src="js/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>
Для разминки сделаем "просто окно" - без затей. Для этого нам потребуется всего одна строка html: view source
1
<div id="dialog"></div>
view source
1
<div id="dialog"></div>
И одна строка яваскрипт кода: view source
1
$("#dialog").dialog({autoOpen: false});
view source
1
$("#dialog").dialog({autoOpen: false});
autoOpen не обязательный параметр, нам он нужен для наглядности (для чего он нужен см. ниже). Открывать и закрывать окно теперь можно соответственно: view source
1
$("#dialog").dialog("open");
view source
1
$("#dialog").dialog("open");
и view source
1
$("#dialog").dialog("close");
view source
1
$("#dialog").dialog("close");
И получим вот такое чудо - Открыть диалог Закрыть диалог


Итак, у нас есть окно, безвкусное квадратное и ничем не примечательное... Надо это исправить.
Начнем наверное с изменения заголовка(точнее его добавления), изменения координат появления окна и... ну и режим модальности
для завершения картины.
JS: view source
1
$("#dialog").dialog({
2
title: "Warning!!!", //тайтл, заголовок окна
3
position: [725, 200], //месторасположение окна [отступ слева, отступ сверху]
4
modal: true //булева переменная если она равно true - то окно модальное, false - то нет
5
});
view source
1
$("#dialog").dialog({
2
title: "Warning!!!", //тайтл, заголовок окна
3
position: [725, 200], //месторасположение окна [отступ слева, отступ сверху]
4
modal: true //булева переменная если она равно true - то окно модальное, false - то нет
5
});
Пример: смотрим

В параметре position можно так же использовать и такие конструкции: view source
1
position: ["left"]
2
position: ["left", "top"]
view source
1
position: ["left"]
2
position: ["left", "top"]

Ну вот, окно более-менее приобрело людской вид. Добавим функциональности - кнопками.
JS: view source
01
$("#dialog").dialog({
02
title: "Warning!!!", //тайтл, заголовок окна
03
width:450, //ширина
04
height: 300, //высота
05
modal: true, //true - окно модальное, false - нет
06
buttons: {
07
"Добавить текст в окно": function() { $("#dialog").text("опа! текст!"); },
08
"Закрыть": function() { $(this).dialog("close"); }
09
}
10
});
view source
01
$("#dialog").dialog({
02
title: "Warning!!!", //тайтл, заголовок окна
03
width:450, //ширина
04
height: 300, //высота
05
modal: true, //true - окно модальное, false - нет
06
buttons: {
07
"Добавить текст в окно": function() { $("#dialog").text("опа! текст!"); },
08
"Закрыть": function() { $(this).dialog("close"); }
09
}
10
});
Пример: смотрим

Как Вы уже заметили я добавил еще два параметра - width и height, ширина и высота.
Параметры простые, но не факт что Вы про них знали :) Ну вот вроде бы и все из простого. Вот так плавно мы подобрались к событиям...
Приступим, как всегда - JS: view source
1
$("#dialog").dialog({
2
dragStop: function(event, ui) { //если окно оставили в покое после перетаскивания, то
3
alert("ui.offset.top = " + ui.offset.top + // выводим координату "потолка" окна
4
"nui.offset.left = " + ui.offset.left); // выводим координату левой стороны окна
5
}
6
});
view source
1
$("#dialog").dialog({
2
dragStop: function(event, ui) { //если окно оставили в покое после перетаскивания, то
3
alert("ui.offset.top = " + ui.offset.top + // выводим координату "потолка" окна
4
"nui.offset.left = " + ui.offset.left); // выводим координату левой стороны окна
5
}
6
});
Это он. Он самый... Пример.

Напоследок самое скучное... Справочный материал по всем опциям, методам и событиям. Пользуйтесь!

Опции:
autoOpen - по умолчанию эта опция имеет значение true, что означает автоматическое появление диалогового окна при вызове метода dialog. Если установить значение опции в false, то диалоговое окно будет находиться в скрытом состоянии и сделать его видимым можно будет с помощью .dialog('open');
bgiframe - по умолчанию – false. Если установить эту опцию в true (потребуется дополнительно подключить плагин bgIframe), будет исправлена проблема в IE6, где элементы select помещаются поверх других элементов независимо от значения z-index. Возможно, в будущих версиях, подключение плагина уже не будет являться обязательным;
buttons - в этой опции передают объект, в котором можно определить кнопки, отображаемые в диалоговом окне, и связать их с callback-функциями;
closeOnEscape - по умолчанию эта опция имеет значение true и диалоговое окно закрывается при нажатии клавиши «Escape». Установив значение false можно запретить это действие;
dialogClass - указанное в этой опции имя класса (или классов) будут применены к диалоговому окну для дополнительного оформления;
draggable - по умолчанию установлено значение true, что дает возможность перемещения диалогового окна. Если установить значение false, перемещение станет невозможным;
height - по умолчанию эта опция принимает значение auto, и высота диалогового окна определяется его содержимым. Можно передать значение высоты диалогового окна в пикселах. Например: height: 300. В этом случае, если содержимое будет превышать установленный размер, появится вертикальная полоса прокрутки;
hide - в этой опции можно определить эффект, который будет использоваться при закрытии диалога. Например: hide: 'slide'. По умолчанию используется значение null, т.е. никаких эффектов не применяется;
maxHeight - максимальная высота, до которой может быть изменен размер диалога, в пикселах;
maxWidth - максимальная ширина, до которой может быть изменен размер диалога, в пикселах;
minHeight - минимальная высота, до которой может быть изменен размер диалога, в пикселах;
minWidth - минимальная ширина, до которой может быть изменен размер диалога, в пикселах;
modal - если установить значение true для этой опции, диалог станет модальным. Т.е. другие элементы на веб-странице будут заблокированы, и пользователь не сможет с ними взаимодействовать. Это будет достигнуто с помощью создания дополнительного слоя, находящегося ниже диалога, но выше остальных элементов веб-страницы;
position - значением этой опции может быть строка или массив, которые определяют начальное положение диалогового окна. Возможные значения: 'center', 'left', 'right', 'top', 'bottom'. Другой вариант - использование этих же значений в массиве. Например [‘right', 'top'] для того, чтобы расположить диалог в правом верхнем углу;
resizable - по умолчанию установлено значение true, что дает возможность изменения размеров диалогового окна. Если установить значение false, то изменение размеров станет невозможным;
show - в этой опции можно определить эффект, который будет использоваться при открытии диалога. Например: show: 'slide'. По умолчанию используется значение null, т.е. никаких эффектов не применяется;
stack - по умолчанию эта опция имеет значение true, что позволяет окну (при использовании нескольких диалоговых окон на одной веб-странице), получившему фокус, быть отображенным поверх остальных окон. Установив эту опцию в false можно отменить такое поведение для выбранного окна;
title - значением опции может быть строка, с помощью которой можно переопределить заголовок окна, заданный в HTML-разметке;
width - начальная ширина диалога, в пикселах. По умолчанию используется значение 300;
zIndex - значение z-index диалогового окна. По умолчанию используется значение 1000.

Методы:
destroy - .dialog("destroy") полностью удаляет всю функциональность виджета Dialog. Возвращает элементы в состояние, предшествующее инициализации;
disable - .dialog ("disable") временно запрещает использование всей функциональности виджета. Вновь разрешить ее использование можно с помощью метода enable;
enable - .dialog ("enable") разрешает использование всей функциональности виджета, если ранее она была запрещена с использованием метода disable;
option - .dialog ("option", optionName, [value]) с помощью этого метода можно получить или установить значение любой опции виджета после инициализации;
close - .dialog ("close") закрывает диалоговое окно;
isOpen - .dialog ("isOpen") метод вернет true, если диалоговое окно уже открыто;
moveToTop - .dialog ("moveToTop") помещает диалоговое окно поверх других диалоговых окон, если их используется два и более;
open - .dialog ("open") открывает диалоговое окно.

События:
beforeClose - наступает, перед закрытием диалогового окна (если связанная с этим событием функция вернет false – это предотвратит закрытие диалога);
open - наступает при открытии диалога;
focus - наступает в момент получения фокуса диалоговым окном;
dragStart - наступает в начале перемещения диалогового окна;
drag - наступает постоянно во время процесса перемещения диалогового окна;
dragStop - наступает в конце перемещения диалогового окна;
resizeStart - наступает в начале изменения размеров диалогового окна;
resize - наступает постоянно во время процесса изменения размеров диалогового окна;
resizeStop - наступает в конце изменения размеров диалогового окна;
close - наступает, когда диалоговое окно было успешно закрыто.


Источник: http://easywebscripts.net

Рекомендуем



jQuery UI. Widgets. Datepicker (Календарь) Если установить значение true, функция dateFormat будет примерена к значениям опций nextText, prevText и currentText с тем, чтобы отображать при навигации, например предыдущее и следующее названия месяцев


jQuery EasyTooltip plugin Во-первых, это мое стремление к простоте и красоте ибо они спасут мир, а когда я взглянул на исходный код нескольких существующих, то понял, что спасать мир придется долго


jQuery для JavaScript Выбор CSS-селекторов в качестве базиса было, конечно, изящной идеей, но использование цепочек преобразований выглядело немного замысловато, и сама библиотека, по-видимому, не покрывала всех возможных случаев