Umbrella JS — это лёгкая и минималистичная библиотека для работы с DOM в JavaScript, создающая удобный интерфейс для манипуляции элементами страницы. Основная философия заключается в простоте и лаконичности: методы цепочечные, объекты обёрнуты в u(), а работа с коллекциями элементов напоминает jQuery, но с меньшим размером и упрощённым синтаксисом.
Для работы с элементами используется функция u(). В
качестве аргумента можно передавать:
Примеры:
const items = u('.item'); // Все элементы с классом item
const firstItem = u(document.getElementById('first')); // Один элемент по id
const multipleElements = u([document.body, document.head]); // Несколько элементов
Каждый объект, возвращаемый u(), является
коллекцией элементов, поддерживающей цепочку методов
для дальнейших манипуляций.
Umbrella JS предоставляет удобные методы для управления классами и атрибутами элементов.
addClass(className) — добавление класса;removeClass(className) — удаление класса;toggleClass(className) — переключение класса;attr(attributeName, value) — установка или получение
атрибута.Пример:
u('.menu-item').addClass('active');
u('#logo').attr('alt', 'Логотип компании');
const href = u('a').attr('href'); // Получение атрибута href
Манипуляции с содержимым элементов выполняются через методы
text() и html():
u('.description').text('Новый текст описания');
u('#content').html('<strong>Важная информация</strong>');
Метод text() безопасно заменяет текстовое содержимое без
HTML, а html() позволяет вставлять HTML-разметку.
Umbrella JS упрощает работу с событиями через методы
on() и off(). Поддерживаются стандартные
DOM-события и делегирование.
u('button').on('click', function(e) {
console.log('Нажата кнопка', e.target);
});
u(document).on('click', '.dynamic-item', function(e) {
console.log('Клик по динамическому элементу');
});
u('button').off('click'); // Удаление обработчика
Добавление, удаление и вставка элементов реализуются через методы:
append(content) — вставка внутрь элементов;prepend(content) — вставка в начало;before(content) — вставка перед элементом;after(content) — вставка после элемента;remove() — удаление элементов из DOM.Примеры:
u('#list').append('<li>Новый элемент</li>');
u('#list').prepend('<li>Первый элемент</li>');
u('.old-item').remove();
Эти методы позволяют работать как с HTML-строками, так и с DOM-элементами или коллекциями Umbrella JS.
Umbrella JS содержит простые средства для анимации и скрытия элементов:
show() — делает элементы видимыми;hide() — скрывает элементы;toggle() — переключает видимость;fadeIn(duration) и fadeOut(duration) —
плавное появление и исчезновение.Пример использования анимации:
u('.notification').fadeIn(500).delay(2000).fadeOut(500);
Методы поддерживают цепочки, что позволяет создавать плавные последовательные действия.
Для работы с HTTP-запросами используется метод
request():
u.request({
url: '/api/data',
method: 'GET',
success: function(response) {
console.log('Данные получены', response);
},
error: function(err) {
console.error('Ошибка запроса', err);
}
});
Поддерживаются GET и POST-запросы, а также настройка заголовков и
параметров. Результат передаётся в функции success и
error.
Umbrella JS спроектирован так, чтобы не конфликтовать с другими библиотеками. Основные принципы совместного использования:
window кроме предоставления
функции u().Пример совместного использования:
u('.item').addClass('highlight'); // Umbrella JS
$('.slider').slick(); // jQuery-плагин
Такой подход позволяет объединять удобство Umbrella JS для базовых задач с мощью других библиотек для специфических функций, сохраняя производительность и компактность кода.
Umbrella JS поддерживает расширение через пользовательские плагины.
Можно добавлять методы к прототипу u.fn:
u.fn.greenify = function() {
this.css('color', 'green');
return this;
};
u('p').greenify(); // Все параграфы окрашиваются в зелёный
Это позволяет создавать собственные цепочные методы и интегрировать их с существующими коллекциями.
window и глобальных переменных.Совместное использование Umbrella JS с другими инструментами позволяет сочетать компактность и удобство с функциональной мощью сторонних библиотек, поддерживая чистый и читаемый код.