На разрабатываемой веб-странице подразумевается активная работа с размерами элементов

Опубликовал: Thursday, July 11, 2024 в категории jQuery, Подборка рецептов | Пока нет комментариев

На разрабатываемой веб-странице подразумевается активная работа с размерами элементов. Необходимо получать и устанавливать размеры выбранных элементов.

Решение

Для решения таких задач библиотека jQuery предлагает целый набор методов, которые мы и используем (листинг 4.2.1).

Листинг 4 .2 .1 . Использование методов width(), height() и д р.

Обсуждение

Код, приведенный в листинге 4.2.1, — это демонстрационная веб-страница, с помощью которой мы познакомимся с методами, позволяющими получать и устанавливать ширину и высоту выбранных элементов. Страница состоит из набора кнопок, элемента ввода input и элемента div. Мы будем получать и изменять размеры элемента div, элемент input будет служить для ввода и вывода значений, а кнопки — для того, чтобы получать и устанавливать соответствующие значения.

Код JavaScript очень однообразен: для каждой кнопки определен обработчик события click. При наступлении события вызывается callback-функция, которая получает ширину (высоту) элемента div и вставляет это значение в поле ввода input. Отличаются только обработчики события для двух последних кнопок — они, наоборот, получают значение, содержащееся в поле ввода input, и устанавливают ширину (высоту) элемента div.

Поговорим о нюансах. Вы наверняка заметили, что значения, полученные из элемента input, умножаются на единицу. Дело в том, что метод val() возвращает строку, а методы width(val) и height(val) принимают число. Умножение на единицу — нехитрый прием в JavaScript, позволяющий преобразовать строковое значение в число.

А почему столько разных методов для получения ширины (высоты)? Здесь тоже все просто — метод width() получает ширину содержимого элемента, т. е. не учитывает ширину отступов (padding), рамок (border) и полей (margin). Метод innerWidth() учитывает ширину содержимого плюс отступы (padding). Метод outerWidth() — ширину содержимого, отступов (padding), рамок (border) и полей (margin). Аналогично обстоит дело и с методами, применяемыми для получения высоты элементов: height(), innerHeight() и outerHeight().

Обратите внимание на значение, которое мы получаем в результате вызова метода outerHeight(). Попробуйте понять, почему оно не соответствует ожиданию. Подсказка: ответ нужно искать в руководстве по CSS.

Источник: Самков Г. А. jQuery. Сборник рецептов. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2011. — 416 с.: ил. + CD-ROM — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *