Есть ли способ получить высоту динамически вставляемого / созданного div, который изначально имеет display = none, перед его отображением? - PullRequest
3 голосов
/ 09 декабря 2010

Есть ли способ получить высоту динамически вставленного / созданного div, который изначально имеет display = none, до его отображения?

Ответы [ 7 ]

2 голосов
/ 09 декабря 2010

Не display:none это ..... Просто добавьте его к абсолютно позиционированному элементу, смещенному на -9999px или около того.В качестве альтернативы используйте visibility:hidden.

1 голос
/ 09 декабря 2010
visibility:hidden;
position:absolute;

скрыто, чтобы сделать невидимым, абсолютным, чтобы вынуть из потока документов. это по-прежнему отображает содержимое и присваивает высоту, которую display:none не делает.

1 голос
/ 09 декабря 2010

Поскольку его высота может зависеть от фактического размещения в DOM, довольно сложно дать точный ответ.

Единственная форма, которую вы можете достоверно определить, это использовать display:block и visibility:hidden.Но имейте в виду, что он займет место еще до того, как его отобразить.

В данном случае используется метод .height()

1 голос
/ 09 декабря 2010

Обычно вы скрываете его, помещая его вне видимой области контейнера с помощью overflow: hidden;.

0 голосов
/ 09 декабря 2010

Я не думаю, что браузер фактически будет отображать DOM во время выполнения скрипта, по крайней мере, по моему опыту.
Я всегда добавлял элемент в его окончательную позицию, измерял его, а затем скрывал.
Я никогда не замечал, чтобы это мгновенно появилось.Мне было бы интересно узнать, что думают другие.

Что-то вроде:

jQuery

var el = $('<div/>', {
    html: 'hello',
    css: {
        padding: '10px'
    }
});
var height = el.appendTo( $(document.body) ).height();
el.hide(); 

Обычный

var el = document.createElement( 'div' );
el.style.padding = '10px';
el.innerHTML = 'hello';
document.body.appendChild( el );
var height = el.clientHeight;
el.style.display = 'none';
0 голосов
/ 09 декабря 2010

Я верю, когда элемент имеет отображение: нет; у него нет высоты. Одним из вариантов будет использование visibilty: скрытый вместо использования $ ('elem'). height ()

0 голосов
/ 09 декабря 2010

если высота установлена ​​в css, то я думаю, что все, что вам нужно сделать, это $ ('# elemID'). Css ('height').

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