Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Высота динамичного дива (https://javascript.ru/forum/dom-window/19469-vysota-dinamichnogo-diva.html)

AndrejsG 05.08.2011 13:02

Высота динамичного дива
 
Доброго дня всем!

Подскажите, как получить высоту дива который может иметь различную высоту в зависимости от контента.

просто document.getElementById('div').height/.style.height не подходит т.к. на сколько я понимаю, если его не прописать самому, он не находится.

Вроде есть возможность через джейквери $('div').height(); но я попробовал и не получилось.

Заранее спасибо за помощь!


П.С. нужно для позиционирования дива относительно курсора (всплывающие подсказки, текста может быть много и чтоб коректно позиционировать нужна высота)

Magneto 05.08.2011 14:14

offsetHeight, offsetWidth

AndrejsG 05.08.2011 17:20

Не помогло, результат - 0.

walik 05.08.2011 17:33

Цитата:

Сообщение от AndrejsG
Вроде есть возможность через джейквери $('div').height(); но я попробовал и не получилось.

Почему не получилось ?

<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.2.js'></script> 
<script type='text/javascript'> 
  $(window).load(function(){
  alert($('#myDiv').height());
  });
  </script>
<div id="myDiv"> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
</div>

AndrejsG 05.08.2011 17:53

Супер, а такой вопрос, я могу скопировать функцию из джейквери и вложить её в свой файл чтоб из своего js файла находить высоту?

walik 05.08.2011 18:44

В смысле ?

AndrejsG 05.08.2011 19:21

У меня есть файл название.js и я в нём пытаюсь получить

alert($(document.getElementById(d.id)).height());

где d.id = ид дива

но я на сколько понимаю height() бирется из http://code.jquery.com/jquery-1.6.2.js не?

Aetae 05.08.2011 23:36

Вкрно понимаете, и нет, там всё взаимосвязано.
<div id="myDiv"> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
    aaaaaaaa<br />aaaaaaaaaaaaa<br /> 
</div>
<script type='text/javascript'> 
  alert(document.getElementById('myDiv').offsetHeight);
</script>

AndrejsG 08.08.2011 11:03

Спасибо Aetae ваш пример работает, но не так как хотелось бы, мне кажется это потому, что див высоту которого я хочу узнать, не отоброжаеться. Пользователь наводит курсор на объект, срабатывает функция позиционирования, и толко тогда выставляется дисплей блок для дива. И получается что когда я вызываю строку alert(document.getElementById('myDiv').offsetHeigh t); в финкции позиционирования, то результат - 0, а когда после, то получаю высоту, но обьект уже расположен не правельно. Может ещё что нибудь подскажите.

AndrejsG 08.08.2011 11:36

Цитата:

Сообщение от AndrejsG (Сообщение 118829)
Спасибо Aetae ваш пример работает, но не так как хотелось бы, мне кажется это потому, что див высоту которого я хочу узнать, не отоброжаеться. Пользователь наводит курсор на объект, срабатывает функция позиционирования, и толко тогда выставляется дисплей блок для дива. И получается что когда я вызываю строку alert(document.getElementById('myDiv').offsetHeigh t); в финкции позиционирования, то результат - 0, а когда после, то получаю высоту, но обьект уже расположен не правельно. Может ещё что нибудь подскажите.

Немного погуглил и нашел ответ, работает во всех современных броузерах. Т.к. для получения offsetHeight нужен дисплей блок, то выставляем его, но visibility выставляем hidden, что дает возможность получить высоту невидимого элемента. Помоему хитрый способ..


Часовой пояс GMT +3, время: 04:06.