jQuery UI — это библиотека пользовательских интерфейсов, построенная поверх jQuery, предназначенная для упрощения создания интерактивных веб-приложений. Она предоставляет готовые виджеты, эффекты, темы и инструменты для взаимодействия с элементами страницы.
Основной принцип работы jQuery UI заключается в расширении возможностей стандартного jQuery. Любой элемент DOM может быть превращён в интерактивный виджет с минимальными усилиями.
Для работы с библиотекой необходимо подключить сам jQuery, а затем jQuery UI. Обычно это делается через CDN:
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
Подключение CSS важно для корректного отображения виджетов и эффектов. jQuery UI поддерживает кастомизацию через ThemeRoller, позволяя создавать собственные цветовые схемы и стили.
jQuery UI предоставляет набор готовых виджетов для стандартных элементов интерфейса:
Используется для выбора даты. Подключение и инициализация минимальны:
$("#datepicker").datepicker({
dateFormat: "dd-mm-yy",
showAnim: "slideDown"
});
Ключевые параметры:
dateFormat — формат даты;showAnim — анимация появления календаря;minDate и maxDate — ограничение диапазона
выбора.Диалог позволяет создавать модальные окна с содержимым.
$("#dialog").dialog({
autoOpen: false,
modal: true,
buttons: {
"Сохранить": function() { $(this).dialog("close"); },
"Отмена": function() { $(this).dialog("close"); }
}
});
Методы и опции:
autoOpen — автоматическое открытие;modal — блокировка фона;buttons — объект кнопок с функциями;.dialog("open"), .dialog("close"),
.dialog("destroy").Вкладки упрощают организацию содержимого:
$("#tabs").tabs({
collapsible: true,
active: 0
});
Опции:
active — активная вкладка;collapsible — возможность закрытия всех вкладок;.tabs("option", "active", 2) для изменения
активной вкладки.Позволяет создавать вертикальные панели с разворачиваемыми секциями:
$("#accordion").accordion({
heightStyle: "content",
collapsible: true
});
Ключевые свойства:
heightStyle — способ расчёта высоты секций
(auto, fill, content);collapsible — позволяет сворачивать все секции;.accordion("option", "active", 1).jQuery UI добавляет анимационные эффекты, расширяя стандартные возможности jQuery:
show() и hide() с эффектами
(fade, slide, blind,
bounce);toggle() с анимацией;addClass(), removeClass() и
switchClass() для анимированного изменения стилей.Пример анимированного скрытия элемента:
$("#box").hide("explode", { pieces: 16 }, 1000);
Параметры:
explode, bounce,
slide и др.);pieces, distance,
times);jQuery UI добавляет возможности drag & drop, сортировки и масштабирования элементов.
Позволяет элементам перемещаться мышью:
$("#drag").draggable({
containment: "#container",
cursor: "move"
});
Параметры:
containment — ограничение области перемещения;axis — ограничение по оси (x или
y);handle — элемент, который инициирует
перетаскивание.Позволяет реагировать на отпускание элементов:
$("#dropzone").droppable({
accept: "#drag",
drop: function(event, ui) {
$(this).addClass("highlight");
}
});
Ключевые опции:
accept — селектор элементов, которые можно
бросать;hoverClass — класс при наведении перетаскиваемого
объекта;drop с объектами event и
ui.Позволяет упорядочивать элементы списка:
$("#sortable").sortable({
placeholder: "ui-state-highlight",
axis: "y"
});
Особенности:
placeholder — класс для визуального места
перемещения;axis — ограничение оси;.sortable("toArray") для получения порядка
элементов.Элемент можно растягивать:
$("#resizable").resizable({
handles: "n, e, s, w",
minWidth: 100,
maxHeight: 300
});
Параметры:
handles — стороны для изменения размера;minWidth, minHeight,
maxWidth, maxHeight — ограничения;start, resize,
stop.jQuery UI использует ThemeRoller для создания собственных тем. Структура CSS классов стандартная:
.ui-widget — общий стиль виджетов;.ui-state-default — базовое состояние элемента;.ui-state-hover — при наведении;.ui-state-active — активный элемент;.ui-widget-content и .ui-widget-header —
контейнеры и заголовки.Темы можно подключать как отдельный CSS или комбинировать с кастомными стилями для уникального интерфейса.
jQuery UI сочетает в себе готовые решения для интерактивности и гибкость кастомизации. Она позволяет создавать сложные интерфейсы с минимальными усилиями, упрощая работу с DOM, событиями и визуальными эффектами.