Mootools: высота скрытых элементов - PullRequest
2 голосов
/ 07 мая 2011

Утро всем,

Я пытаюсь создать эффект Mootools, чтобы отображать и скрывать ответы на комментарии на доске обсуждений. Когда пользователь нажимает ссылку «ответы» в комментарии, я хочу увеличить высоту контейнера комментариев, а затем постепенно увеличивать содержимое ответов. Если содержимое ответов уже видно, нажатие на ссылку приведет к обратному эффекту.

У меня это вроде работает, но у меня проблемы с получением правильной высоты моих скрытых элементов (отвечает H в моем JS). Я пробовал getDimensions (), measure () и getComputedSize (), но все они дают один и тот же результат: когда элементы настроены на отображение: никто не получает слишком маленькую высоту; когда я выставил их для отображения: блок высота правильная. Может ли какой-нибудь добрый человек определить, где я иду не так?

http://jsfiddle.net/andfinally/tVBCa/

Приветствие Fred

=======================

немного позже

Только что заметил - ширина контейнера .comments-list, похоже, как-то связана с этой проблемой. Когда я удаляю эту ширину, эффект работает нормально. Это, вероятно, означает, что getDimensions получает высоту элемента, когда он ни во что не вложен. Кто-нибудь может подсказать, как я могу определить, какой будет высота, когда она вложена?

Приветствие Фред

Ответы [ 2 ]

4 голосов
/ 07 мая 2011

вы можете использовать Fx.Reveal , это очень полезно, когда вы сталкиваетесь с подобными проблемами, и упрощает ОЧЕНЬ ваш код, т. Е. (Я раздвоил ваш пример) => http://jsfiddle.net/steweb/DH27F/

1 голос
/ 07 мая 2011

Простой способ обойти это:

replies.show();
var repliesH = replies.getDimensions().y;            
replies.hide();

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

Ваш обновленный Fiddle здесь .

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