Как я могу получить полезное значение для высоты и ширины элемента div с помощью JavaScript? - PullRequest
0 голосов
/ 29 марта 2010

Мне нужно иметь возможность хранить текущую высоту и ширину div в любой момент времени.

В настоящее время я использую div.style.height / width, который отлично работает, когда стиль применяется внутри строки.

Проблема в том, что это возвращает, например, 600px, а не 600.

Есть ли лучший способ сделать это? Если нет, то какой лучший способ получить номер 600?

Мой обновленный код выглядит так:

var div = document.getElementById('container');
div.scrollLeft = contentdim.cx*scalar - parseInt(div.style.width)/2;
div.scrollTop = contentdim.cy*scalar - parseInt(div.style.height)/2;

Который отлично работает в FF. По какой-то причине scrollTop не работает в Chrome, хотя ..

Примечание: это функция, которая вызывается для прокрутки div.

Ответы [ 5 ]

4 голосов
/ 29 марта 2010

попробуй div.offsetHeight || div.clientHeight

3 голосов
/ 29 марта 2010

parseInt (div.style.height) является более общим, чем div.style.height.replace ("px", "")

Однако div.style.offsetHeight может быть лучше, потому что он не зависит от явно установленного стиля (но вы должны отобразить div, прежде чем сможете прочитать значение)

3 голосов
/ 29 марта 2010
div.style.height.replace("px","")

С jQuery, немного более элегантным, вы также можете сделать это: http://api.jquery.com/height/

$("div").height() 
//returns just the integer
2 голосов
/ 29 марта 2010

Подведем итог вышесказанному:

document.getElementById('yourElement').style.height

Высота CSS, если она была установлена ​​в таблице стилей. Не будет включать отступы, поля и т. Д. Если он не установлен, вы можете получить значения, такие как auto.

document.getElementById('yourElement').offsetHeight

Высота элемента HTMLE, отображаемого в браузере, включая отступы, полосы прокрутки и т. Д. (Общее смещение, которое занимает высота этого элемента). Обратите внимание, что это часто может быть эквивалентно clientHeight, но это не гарантируется.

Вот как offsetHeight определяется в Центре разработчиков Mozilla. Обратите внимание, что есть несколько различий с clientHeight , а именно clientHeight не включает отображаемые полосы прокрутки; offsetHeight, как правило, даст вам максимальное значение.

0 голосов
/ 29 марта 2010

Используйте jQuery:

высота ()

ширина ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...