Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2009, 06:59
Интересующийся
Отправить личное сообщение для paratrooper1981 Посмотреть профиль Найти все сообщения от paratrooper1981
 
Регистрация: 10.09.2009
Сообщений: 20

Высота скрытого содержания в теге, если для него установлено overflow:hiden;
Подскажите, пожалуйста, свойство для определения высоты содержимого тега, если оно частично скрыто при помощи overflow:hidden;

Код:
<div style="overflow:hidden; height:10px;" id="teg1">
текст текст текст
<p>
текст текст текст текст
</p>
<div><img src="image.gif" /></div>
</div>
Высота видимой части тега <div> с id="teg1" определяется как document.getElementById("teg1").offsetHeight. В данном примере она будет равна 10px. Хотя в теге содержится много текста и картинка, но offsetHeight возвратит размер видимой части тега. Но есть ещё скрытое содержание тега, скрываемое при помощи указания overflow:hidden;Как можно узнать высоту всего содержимого тега <div id="teg1">..</div>, даже если оно не отображается в браузере?
Ответить с цитированием
  #2 (permalink)  
Старый 21.12.2009, 15:05
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

почему бы не добавлять overflow: hidden после того, как выяснишь высоту?
Ответить с цитированием
  #3 (permalink)  
Старый 21.12.2009, 18:21
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от x-yuri
почему бы не добавлять overflow: hidden после того, как выяснишь высоту?
высоту не выяснить пока не применишь код в DOM.. а если применять без хиддена, то получится мерцание контента и т.п., я лично обхожу следующим образом, если элемент скрыт (display: none): visibility: hidden, display: fixed; узнаю высоту/ширину, восстанавливаю display, visibility;

Последний раз редактировалось PeaceCoder, 21.12.2009 в 18:24.
Ответить с цитированием
  #4 (permalink)  
Старый 21.12.2009, 18:34
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ну тогда уж display: none, узнаем высоту, а потом display: block; overflow: hidden. Хотя все равно контент будет перемещаться. display: fixed, кстати, не везде работает

а вообще все от ситуации зависит, о чем, надеюсь ТС нам сообщит. Типа, "когда нужно узнать высоту?" и "критично ли изменение расположения элементов на странице?"
Ответить с цитированием
  #5 (permalink)  
Старый 21.12.2009, 19:13
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от x-yuri
у тогда уж display: none,
неузнаешь. при display: none элемент не имеет высоты и ширины.
Сообщение от x-yuri
display: fixed, кстати, не везде работает
не display, а position: fixed; перепутал. А на счет не все поддерживают - опять ие6 ? он с ие7 поддерживается.
Ответить с цитированием
  #6 (permalink)  
Старый 21.12.2009, 21:51
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Сообщение от PeaceCoder
неузнаешь. при display: none элемент не имеет высоты и ширины.
При visibility:hidden узнаешь.
Ответить с цитированием
  #7 (permalink)  
Старый 21.12.2009, 22:15
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от B~Vladi
При visibility:hidden узнаешь.
А я что написал в посте? выше этого ответа?
Ответить с цитированием
  #8 (permalink)  
Старый 21.12.2009, 22:40
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

var o = document.getElementById("teg1");
alert(/**/o.scrollHeight - o.clientHeight/**/)

Последний раз редактировалось subzey, 21.12.2009 в 22:45. Причина: подсветка в коде
Ответить с цитированием
  #9 (permalink)  
Старый 21.12.2009, 23:32
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Сообщение от PeaceCoder
А я что написал в посте? выше этого ответа?
Аха, туплю
Ответить с цитированием
  #10 (permalink)  
Старый 22.12.2009, 13:06
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

да тут по-моему все протупили, кроме subzey. Правда непонятно, зачем вычитать clientHeight, так что может и все

Сообщение от PeaceCoder
опять ие6 ?
естественно, неужели так сложно переместить элемент за верхний левый край?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 12:31