Umbrella JS предоставляет лаконичные методы для работы с размерами элементов DOM, обеспечивая удобный доступ к ширине, высоте и связанным свойствам. Работа с размерами элементов важна при построении динамических интерфейсов, адаптивной вёрстки и анимаций.
.width() и
.height()Методы .width() и .height() позволяют
получить текущие размеры первого элемента в наборе, выбранном с помощью
u(). Эти методы возвращают числовое значение в
пикселях, исключая единицы измерения.
Пример использования:
let elementWidth = u('#box').width();
let elementHeight = u('#box').height();
console.log('Ширина элемента:', elementWidth);
console.log('Высота элемента:', elementHeight);
Особенности:
.height() возвращает высоту
содержимого без внутренних отступов и границ..innerWidth() и
.innerHeight()Для получения размеров, включая внутренние отступы
(padding), используются методы .innerWidth() и
.innerHeight():
let innerW = u('#box').innerWidth();
let innerH = u('#box').innerHeight();
console.log('Ширина с padding:', innerW);
console.log('Высота с padding:', innerH);
Эти методы учитывают только padding, не включая границы (border) и внешние отступы (margin).
.outerWidth() и .outerHeight()Методы .outerWidth() и .outerHeight()
возвращают размеры элемента вместе с padding и
border.
let outerW = u('#box').outerWidth();
let outerH = u('#box').outerHeight();
console.log('Ширина с padding и border:', outerW);
console.log('Высота с padding и border:', outerH);
Дополнительно, методы принимают булевый параметр true,
чтобы включить внешние отступы (margin) в расчет:
let fullWidth = u('#box').outerWidth(true);
let fullHeight = u('#box').outerHeight(true);
console.log('Полная ширина с margin:', fullWidth);
console.log('Полная высота с margin:', fullHeight);
Umbrella JS позволяет не только получать размеры, но и задавать их.
Методы .width(value) и .height(value)
принимают число или строку с единицами измерения:
u('#box').width(200); // ширина 200px
u('#box').height('50%'); // высота 50% от родителя
При передаче числового значения оно автоматически интерпретируется как пиксели. Это упрощает адаптивную подстройку элементов и создание интерактивных интерфейсов.
Если набор элементов содержит несколько DOM-узлов, методы
.width() и .height() возвращают значение
только для первого элемента. Для изменения размеров
всех элементов можно использовать цикл через метод
.each():
u('.boxes').each(function(el) {
u(el).width(150);
u(el).height(150);
});
Таким образом можно управлять группой элементов одновременно, сохраняя лаконичность кода.
.width() и clientWidthМетоды Umbrella JS дают преимущество в простоте и единообразии API по
сравнению с прямым обращением к свойствам DOM, таким как
element.clientWidth или
element.offsetWidth.
.width() и .height() → размеры содержимого
(content)..innerWidth() / .innerHeight() → content +
padding..outerWidth() / .outerHeight() → content +
padding + border (+ margin при параметре true).Измерение и настройка размеров с учетом адаптивного интерфейса:
let mainBox = u('#main-box');
if (mainBox.width() < 300) {
mainBox.width(300);
}
mainBox.outerHeight(true); // получение полной высоты с margin для вычисления позиции соседних блоков
Использование этих методов позволяет строить динамические сетки, корректно позиционировать всплывающие окна и модальные диалоги, а также проводить анимацию изменения размеров.
width() / height() — базовые размеры
содержимого.innerWidth() / innerHeight() — размеры с
padding.outerWidth([includeMargin]) /
outerHeight([includeMargin]) — размеры с padding, border и
опционально margin..width(value) /
.height(value) позволяет динамически изменять
размеры элементов..each().Использование этих методов обеспечивает точное и гибкое управление размерами DOM-элементов, позволяя создавать адаптивные, интерактивные интерфейсы с минимальной сложностью кода.