Umbrella JS — это легковесная библиотека для работы с DOM в JavaScript, предоставляющая удобный и лаконичный API, похожий на jQuery, но с меньшим объёмом и высокой производительностью. Она позволяет легко управлять элементами страницы, манипулировать атрибутами, стилями, событиями и производить AJAX-запросы.
Ключевой особенностью Umbrella JS является использование цепочек вызовов (method chaining), что делает код компактным и читаемым:
u('div.example').addClass('active').css('color', 'red');
Здесь u() — основной селектор, возвращающий объект с
выбранными элементами, на которых можно вызывать методы библиотеки.
Umbrella JS предоставляет набор методов для управления классами и атрибутами элементов:
addClass(className) — добавляет указанный класс к
элементу.removeClass(className) — удаляет указанный класс.hasClass(className) — проверяет наличие класса.attr(name, value) — устанавливает или получает значение
атрибута.removeAttr(name) — удаляет атрибут.Пример:
u('button.submit')
.addClass('enabled')
.attr('disabled', false);
Это позволяет удобно комбинировать работу с классами и атрибутами в цепочках вызовов.
Методы работы со стилями позволяют напрямую изменять CSS-свойства выбранных элементов:
css(property, value) — устанавливает CSS-свойство.css({property1: value1, property2: value2}) — установка
нескольких свойств одновременно.css(property) — получение текущего значения
свойства.Umbrella JS автоматически заботится о браузерной совместимости при применении стилей, но при работе с экспериментальными CSS-свойствами иногда требуется использование vendor-префиксов.
Vendor-префиксы — специальные приставки перед свойствами CSS, которые обеспечивают поддержку новых функций в различных браузерах до их стандартизации. Основные префиксы:
-webkit- для Chrome, Safari, Opera-moz- для Firefox-ms- для Internet Explorer и Edge-o- для старых версий OperaUmbrella JS не предоставляет автоматической генерации префиксов,
поэтому для свойств вроде transform,
transition, animation нужно явно указывать их
при необходимости:
u('.box').css({
'-webkit-transform': 'rotate(45deg)',
'-moz-transform': 'rotate(45deg)',
'-ms-transform': 'rotate(45deg)',
'transform': 'rotate(45deg)'
});
Использование объекта при вызове css() упрощает задачу
применения нескольких префиксов одновременно.
Umbrella JS позволяет легко управлять размерами и координатами элементов через методы:
width(value) и height(value) — установка
или получение ширины и высоты.outerWidth(includeMargin) и
outerHeight(includeMargin) — получение внешних размеров с
учётом padding и border, по желанию — margin.offset() — получение позиции элемента относительно
документа.Для свойств вроде transform: translate() или
transition также может потребоваться добавление
vendor-префиксов, особенно при поддержке старых браузеров.
Umbrella JS упрощает работу с событиями:
on(event, handler) — добавление обработчика.off(event, handler) — удаление обработчика.trigger(event) — программный вызов события.Для анимаций и переходов, использующих vendor-префиксы, важно учитывать события окончания анимации. Например:
u('.box').on('webkitTransitionEnd mozTransitionEnd transitionend', function() {
console.log('Анимация завершена');
});
Это обеспечивает корректное отслеживание завершения CSS-переходов во всех браузерах.
Методы добавления, удаления и изменения элементов:
append(content) — добавляет внутрь элемента.prepend(content) — добавляет в начало.before(content) / after(content) — вставка
относительно элемента.remove() — удаление элемента.html(content) — установка или получение внутреннего
HTML.При работе с элементами, к которым применяются CSS-анимации с vendor-префиксами, правильное управление DOM помогает избежать конфликтов и визуальных сбоев.
Umbrella JS содержит встроенные методы для отправки AJAX-запросов:
u.ajax({
url: '/data',
method: 'GET',
success: function(response) {
console.log(response);
},
error: function(err) {
console.error(err);
}
});
Благодаря компактному API можно легко загружать данные и динамически обновлять элементы, к которым применены стили с префиксами, не нарушая визуальную целостность интерфейса.
Umbrella JS поддерживает подключение собственных плагинов. Для работы с vendor-префиксами удобно создавать вспомогательные функции, автоматизирующие добавление префиксов к CSS-свойствам:
function prefixed(property, value) {
const prefixes = ['-webkit-', '-moz-', '-ms-', ''];
let styles = {};
prefixes.forEach(prefix => {
styles[prefix + property] = value;
});
return styles;
}
u('.box').css(prefixed('transform', 'rotate(45deg)'));
Такой подход уменьшает повторяемость кода и делает поддержку разных браузеров более удобной.
css() для
задания нескольких свойств одновременно.webkitTransitionEnd, transitionend,
mozTransitionEnd).Такая методология позволяет эффективно использовать возможности Umbrella JS для динамических интерфейсов, обеспечивая кроссбраузерную совместимость и аккуратное управление DOM и стилями.