Дополнительно
Как вы получаете, оказываемых высоту элемента?
Как вы получаете, оказываемых высоту элемента?
Позвольте'ы сказать, что у вас в <див>
элемент с каким-то содержимым внутри. Этот контент внутри собирается растянуть высоту в <див>
. Как вы получите, что "вынесла" с высоты, когда вы не'т явно задать высоту. Очевидно, я пробовал:
var h = document.getElementById('someDiv').style.height;
Есть трюк для этого? Я с помощью jQuery, если это помогает.
366
17
Попробуйте один из:
clientHeight
включает в себя высоту и вертикальный отступы.offsetHeight
включает в себя высоту, вертикальное заполнение и вертикальных границ.scrollHeight
включает в себя высоту, содержащейся в документе (было бы больше, чем просто высота в случае прокрутки), вертикальное заполнение и вертикальных границ.Она должна просто быть
с помощью jQuery. Это возвращает высоту первого элемента в обернутом наборе как число.
Пытаюсь использовать
работает только если вы установили свойство в первую очередь. Не очень полезно!
Не на jQuery так как там было куча ссылок с помощью Элем.стиль.высота в верхней части эти ответы...
ВНУТРЕННЯЯ ВЫСОТА: https://developer.mozilla.org/en-US/docs/Web/API/Element.clientHeight
ВНЕШНЯЯ ВЫСОТА: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.offsetHeight
Или одна из моих любимых ссылок: http://youmightnotneedjquery.com/
Вы можете использовать
.outerHeight()
для этой цели.Это даст вам полный оказанные высоту элемента. Кроме того, вы Дон'т нужна, чтобы установить какой-либо УСБ-высоты элемента. Для Примечание Вы можете сохранить его высоты авто так это может быть представлено как в содержание'с высоты.
Для четкого представления о данной функции вы можете пойти для jQuery'с сайта или развернутый пост здесь.
ясно разница между
.высота()
/innerHeight()
/outerHeight()
Я использую этот:
Он также работает, когда вы используете виртуальный дом. Я использую его в Vue такой:
тогда просто:
стиль.высота
Наверняка использовать
или
Я'м отправляю это в качестве дополнительного ответа, потому что есть несколько важных вещей, которые я узнал.
Я чуть не попал в ловушку, только теперь через offsetHeight. Вот что получилось :
Здесь's просто часть его :
Да это выглядит как прокрутка и смещение. Если это не удается, он выглядит еще дальше, принимая во внимание браузером и проблем совместимости с CSS. Другими словами вещи, которые я не волнует О - или хотите.
Но мне не нужно. Спасибо на jQuery!
Мораль истории : если в jQuery есть метод для чего-то его, вероятно, по уважительной причине, вероятно, связанные с совместимость.
Если вы еще'т Читать через список на jQuery методов в последнее время я предлагаю вам взглянуть.
Я сделал простой код, который не'т даже нужно jQuery и, возможно, поможет некоторым людям. Это становится общая высота 'типа id1' после загрузки и использовать его на 'ID2, которое'
Тогда просто установить тело, чтобы загрузить его
Тю мы можем сделать геометрию элемента...
Как насчет этого равнина с JS ?
Так что это ответ?
"Если вам нужно что-то подсчитать, но не показать его, выберите элемент
видимость:скрытый " и " положение:абсолютный
, добавить его в DOM-дерево, получить offsetHeight и снимите ее. (Что's что библиотеку Prototype, совсем в тылу в последний раз я проверил).&и"У меня такая же проблема на количество элементов. Нет jQuery или прототип, который будет использоваться на сайте, но я'm все в пользу заимствования технику если она работает. Как пример некоторые вещи, которые не работают, после того, что сделал, у меня есть следующий код:
который в принципе ничего и все только, чтобы получить нулевой результат. ClientHeight не влияют. С элементами проблемы я, как правило, получаем NaN базы и ноль в смещение и высоту прокрутки. Затем я попробовал добавить раствор и clientRects дом, чтобы увидеть, если он работает здесь.
29 июня 2011 года, Я действительно Обновить код, чтобы попробовать как добавлять в дом и clientHeight с лучшими результатами, чем я ожидал.
clientHeight тоже был 0.
Дом на самом деле дал мне рост, который был отличным.
ClientRects возвращает результат практически идентична технике дом.
Потому что элементы добавленной жидкости в природе, когда они добавляются в пустом темп DOM-элементу, они отображаются в зависимости от ширины контейнера. Это странно, потому что 30 пикселей меньше, чем это в итоге заканчивается.
Я добавил несколько снимков, чтобы проиллюстрировать, как высота рассчитывается по-разному.
Высота различия очевидны. Я, конечно, мог бы добавить абсолютное позиционирование и скрытый, но я уверен, что не будет иметь никакого эффекта. Я по-прежнему убеждена, что это не сработает!
(Я отвлекся дальше) высота выходит (рендеры) ниже, чем истинный оказываемых высоту. Эта задача может быть решена путем установки ширины темп DOM-элемент, чтобы соответствовать существующим родитель и может быть сделано достаточно качественно, в теории. Я тоже не знаю, что будет в результате их удаления и добавления их обратно в их существующем месте. Как они прибыли через метод innerHTML будет я буду смотреть через такой разный подход.
Однако не было необходимости. На самом деле он работал как рекламируется, и вернулся на правильную высоту!!!
Когда я был в состоянии чтобы вернуть меню видны изумительно дом вернулся правильной высоты в макете жидкости в верхней части страницы (279px). Приведенный выше код также использует getClientRects, которые возвращают 280px.
Это проиллюстрировано на следующем рисунке (взято из хром после работы.)
Теперь у меня нет идеи, что прототип трюк работает, но это кажется. Кроме того, getClientRects тоже работает.
Я подозреваю, что причина всех этих бед с этих элементов является использование innerHTML будет вместо метода appendChild, но это чистая спекуляция на данный момент.
offsetHeight
, как правило.Если вам нужно что-то подсчитать, но не показать его, выберите элемент
видимость:скрытый " и " положение:абсолютный
, добавить его в DOM-дерево, получитьoffsetHeight
, и удалить его. (Что's что библиотеку Prototype делает за кулисами в последний раз я проверил).Иногда offsetHeight будет возвращать ноль, потому что элемент, который вы'вэ, созданных не оказывалась в дом еще. Я написал эту функцию для таких обстоятельств:
Если вы уже используете jQuery, ваш лучший выбор
.outerHeight()
или.высота()
, как было заявлено.Без jQuery, вы можете проверить коробка-размеров и различных прокладок + границ + clientHeight, or вы можете использовать getComputedStyle](https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle):
ВАР ч = getComputedStyle(документ.метода getElementById('someDiv')).высота;
ч
теперь будет строку как-то "Военторга"был 53.825;.И я могу'т найти ссылку, но я думаю, что я слышал getComputedStyle()
может быть дорогим, поэтому он'ов, наверное, не то, что вы хотите звонить на каждом окне.событие onscroll
(но потом, не такое jQuery'высоты s()
).С В MooTools:
$('someDiv').getsize не().г
Если я правильно понял ваш вопрос, то, возможно, что-то вроде этого поможет:
Вы установить высоту в CSS конкретно? Если вы еще'т вы должны использовать
offsetHeight;
скорее, чемвысота