0 Rune [2013-02-21 19:29:00]
У меня есть элемент, который мне нужно переместить на экран, когда нажимается кнопка, а затем снова отходить от экрана при повторном нажатии.
Проблема в том, что я бы не хотел писать определенную ширину поля, потому что это не всегда будет одинаковым. Я думал, что этот код должен это сделать, но я получаю ссылку ReferenceError «Не могу найти переменную: ширина». Есть идеи, как улучшить его?
5 ответов
Вы должны использовать один из следующих вариантов:
И используйте его внутри обработчика $ (document).ready, так как до этого вы, вероятно, не получите никакой ширины, поскольку DOM пока не отображается.
т.е. ширина в кавычках.
0 sdespont [2013-02-21 19:34:00]
Эта строка имеет синтаксическую ошибку и var itemW ).css(width); исключение: var itemW ).css(width);
Вам необходимо использовать:
var itemW ).css(‘width’);
var itemW ).width();
0 Vaclovas [2013-02-21 19:34:00]
изменить на: var itemW ). width(); и подумайте, нужна ли вам внешняя ширина (прокладка) или нет.
Материал из JQuery
все три функции возвращают ширину первого из выбранных элементов страницы. Отличия у функций следующие:
| $(«div.content»).width() | возвратит ширину первого div-элемента с классом content. |
| $(document).width() | возвратит ширину всей страницы |
| $(«.content»).width(30) | устанавливает значение ширины в 30 пикселей всем элементам с классом content. |
| $(«div.content»).outerWidth() | возвратит ширину первого div-элемента с классом content. В значение высоты будут включены внутренние отступы и толщина рамок |
| $(«div.content»).outerWidth(true) | аналогично предыдущему примеру, но в значение ширины будут так же включены внешние отступы. |
Замечание 1: использование функции .width() обычно удобнее, чем .css("width"), поскольку возвращаемое ей значение не содержит окончания «px». То есть в первом случае, вы получите 30, а во втором «30px».
Замечание 2: важно отметить, что используя метод .width(name) вы получите значения атрибута только первого элемента из всех выбранных. Если вам нужны значения всех элементов, то следует использовать конструкции типа .map() или .each().
В действии
Увеличим ширину всех элементов во второй строке на 10 пикселей.
Результат:
Определение и применение
jQuery метод .width() получает текущее вычисленное значение ширины для первого элемента в наборе совпавших элементов, или устанавливает ширину каждого соответствующего элемента.

Наглядное отображение использования jQuery метода .width().
Обращаю Ваше внимание, что разница между методами .css( » width» ) и .width() заключается в том, что последний возвращает значение без указания единиц измерения, тогда как первый возвращает значение в пикселях (пример приведен ниже).
jQuery метод .width() рекомендуется использовать, когда необходимо использовать ширину элемента в математическом расчете. Для вычисления высоты элемента используется метод .height().
jQuery метод .width() также сможете найти ширину окна, или документа:
jQuery метод .width() не гарантирует точность в том случае, когда элемент, или его родитель скрыт. Чтобы получить точное значение, убедитесь, что элемент является видимым перед использованием метода. jQuery будет пытаться временно показать, а затем снова скрыть элемент для того, чтобы измерить его размеры, но в этом случае метод не является надежным, это может влиять на производительность страницы. Подобная функция измерения может быть удалена в следующей версии библиотеки jQuery.
Метод с версии jQuery 1.8 вычисляет и возвращает ширину элемента независимо от того какая модель вычисления ширины и высоты используется ( content-box , или border-box свойства box-sizing
). То есть метод будет вычитать границы и внутренние отступы. Если Вас это не устраивает, то используйте метод .css( » width» ). Пример сравнения двух моделей и этих методов представлен ниже.
jQuery синтаксис:
Добавлен в версии jQuery
Значения параметров
| Параметр | Описание |
|---|---|
| value | Параметр определяет значение ширины, которое будет установлено. Допускается указывать любые единицы измерения CSS, либо указывать только числовое значение без единиц измерения, в этом случае значение будет установлено в пикселях. |
| function (index, currentValue) | Определяет функцию, которая возвращает новое значение ширины, которое будет установлено выбранным элементам. Внутри функции this ссылается на текущий элемент в наборе. index — возвращает индекс элемента в наборе. currentValue — текущее значение ширины элемента. |
Пример использования
В этом примере мы при нажатии на кнопку:
-
с использованием jQuery метода .css() возвращаем и выводим в консоль браузера значение ширины первого элемента
, ширину HTML документа и значение ширины области просмотра браузера.
Результат нашего примера:
Пример использования jQuery метода .width() (возвращение значения)
Рассмотрим следующий пример в котором мы рассмотрим отличие метода .w >content-box и border-box :
В этом примере мы при нажатии на кнопку:
-
с использованием jQuery метода .css() возвращаем и выводим в консоль браузера значение ширины элемента
использует модель border-box , значение вывода не включает в себя как границы элемента, так и внутренние отступы. В этом заключается отличие этого метода от метода .css() при использовании метода border-box .
Результат нашего примера:
Пример использования jQuery метода .width() (модели content-box и border-box)
Рассмотрим следующий пример в котором с помощью метода .width() мы будем устанавливать значения ширины, а не возвращать.
В этом примере мы при нажатии на кнопку с использованием jQuery метода .width() устанавливаем значение ширины элементам
с классом test1 равную 150 пикселей, а элементам с классом test2 значение ширины равную 35% от родительского элемента.
Обратите внимание на то, что если вы задаете значение не в пикселях (без указания единиц измерения), то значение необходимо передавать в виде строки.
Результат нашего примера:
Пример использования jQuery метода .width() (установка значений)
Рассмотрим следующий пример в котором в качестве параметра метода .width() мы передадим функцию.
В этом примере мы в качестве параметра метода .width() передаем функцию, которая возвращает и устанавливает новое значение ширины элемента
Результат нашего примера:
Пример использования jQuery метода .width() (функция в качестве параметра)
Рассмотрим следующий пример в котором с помощью метода .resize() и метода .width() будем отслеживать ширину области просмотра браузера и при её изменении устанавливать определённый цвет заднего фона.
В этом примере с помощью метода .resize() и метода .width() мы отслеживаем ширину области просмотра браузера и при её изменении устанавливаем определённый цвет заднего фона элементу . Если ширина области просмотра меньше 1000 пикселей и больше 800 пикселей, то цвет заднего фона будет установлен желтый. Если ширина области просмотра меньше 800 пикселей и больше 600 пикселей, то цвет заднего фона будет установлен зеленый, в других случаях цвет заднего фона будет установлен как синий.
Обратите внимание, что при загрузке страницы цвет будет белый, так как функция запуститься только при изменении размеров окна (jQuery метод .resize()).
Результат нашего примера:
Пример использования jQuery метода .width() при изменении ширины окна jQuery DOM методы