Umbrella JS — лёгкая библиотека для манипуляции DOM, которая предоставляет удобные методы для работы с элементами и документом в целом. Одной из часто необходимых задач при работе с веб-страницами является получение размеров элементов и окна браузера. Umbrella JS упрощает эти операции благодаря лаконичному API.
Для определения текущей ширины и высоты окна используются методы
windowWidth() и windowHeight(). Они возвращают
числовое значение в пикселях, соответствующее размеру видимой области
окна браузера.
u().windowWidth(); // вернёт ширину окна
u().windowHeight(); // вернёт высоту окна
Особенности:
Umbrella JS предоставляет метод width() и
height(), который работает как для получения, так и для
установки размеров элементов.
let elementWidth = u('#myElement').width(); // ширина элемента
let elementHeight = u('#myElement').height(); // высота элемента
Если в метод передать числовое значение, оно будет установлено в качестве новой ширины или высоты:
u('#myElement').width(300); // установит ширину 300px
u('#myElement').height(150); // установит высоту 150px
Ключевые моменты:
padding и border
исключены).Для более точного контроля над размерами элемента Umbrella JS
предлагает методы innerWidth(), innerHeight(),
outerWidth() и outerHeight().
innerWidth() / innerHeight() возвращают
размеры элемента вместе с внутренними отступами
(padding), но без границ и внешних отступов.outerWidth() / outerHeight() возвращают
размеры элемента вместе с границами и, при необходимости,
внешними отступами.let innerW = u('#myElement').innerWidth();
let outerH = u('#myElement').outerHeight(true); // true включает внешние отступы
Важно:
outerWidth() и outerHeight()
можно передавать булевый параметр true, чтобы включить
внешние отступы (margin) в вычисляемое значение.Определение полной ширины и высоты документа, а не только окна,
осуществляется через documentWidth() и
documentHeight():
let docWidth = u().documentWidth();
let docHeight = u().documentHeight();
Особенности:
Иногда требуется вычислить видимую часть элемента относительно окна:
let el = u('#myElement');
let elHeight = el.height();
let windowHeight = u().windowHeight();
if (elHeight > windowHeight) {
console.log('Элемент выше видимой области окна');
}
Примечание:
Umbrella JS поддерживает обработку событий изменения размера окна
через метод on():
u(window).on('resize', function() {
let w = u().windowWidth();
let h = u().windowHeight();
console.log(`Новая ширина: ${w}, новая высота: ${h}`);
});
Рекомендации:
resize позволяет
динамически подстраивать элементы под новое разрешение.innerWidth и
outerHeight для точного позиционирования элементов.Методы width() и height() по умолчанию
работают с пикселями, но можно использовать строки с другими
единицами:
u('#myElement').width('50%'); // ширина 50% от родителя
u('#myElement').height('10em'); // высота в em
Особенности:
width() или
height() возвращается числовое значение в пикселях, даже
если в CSS используется процентная или относительная единица.Umbrella JS позволяет плавно изменять размеры элементов через метод
animate():
u('#myElement').animate({ width: 400, height: 200 }, 500); // 500 мс
Примечание:
innerWidth и
outerHeight для создания динамически изменяющихся элементов
интерфейса.outerWidth(true) и
outerHeight(true), чтобы учесть все отступы и границы.windowHeight/windowWidth с координатами
элемента через метод offset().documentWidth и
documentHeight для корректного расчёта области контента и
подгрузки динамических элементов.Методы работы с размерами в Umbrella JS обеспечивают компактный и предсказуемый API, позволяя выполнять сложные операции по измерению и изменению размеров без громоздких вычислений через чистый JavaScript.