Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Реакция на изменения высоты блока (https://javascript.ru/forum/angular/47559-reakciya-na-izmeneniya-vysoty-bloka.html)

hopest 28.05.2014 15:21

Реакция на изменения высоты блока
 
Есть резиновый блок, надо постоянно знать и реагировать на изменения его высоты (Например при изменении нашего блока, изменить блок соседнего блока). Есть пример директивы resize, но это реакция на смену окна, потому не то.

trikadin 28.05.2014 16:20

Может, вам просто надо вот это?
http://htmlbook.ru/blog/div-nye-kolo...-vysoty-na-css

WorM32 28.05.2014 16:25

Запускать таймер и сравнивать высоты. Большинство библиотек основано на этом принципе.

hopest 28.05.2014 17:21

Цитата:

Сообщение от trikadin (Сообщение 313832)
Может, вам просто надо вот это?
http://htmlbook.ru/blog/div-nye-kolo...-vysoty-na-css


Что надо

Есть div который имеет высоту страницы, в нем два горизонтальных дива, первый вложеный, имеет свой мин-макс (плавает)

.tree-height {
        overflow: auto;
        min-height: 80px;
        max-height: 250px;
    }


Второй же див заполняет(должен) всю оставшуюся область родителя, а родитель как я говорил фиксированный по высоте страницы, тем самым не допускаем скрола страницы, скролинг лишь в дочерних двух дивах. Не получается в общем отрегулировать высоту второго дива при изменении высоты первого (tree-height)

trikadin 28.05.2014 17:46

Может, вот так подойдёт? Не надо лепить js там, где можно обойтись версткой.
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">


    <style>
        html, body {
            height: 100%;
        }
        div {
            width: 100%;
        }
        #container {
            height: 100%;
            display: table;
            background: red;
        }

        #div1 {
            display: table-row;
            min-height: 80px;
            max-height: 250px;
            background: yellow;
        }

        #div2 {
            display: table-row;
            background: blue;
        }
    </style>
    <title></title>
</head>
<body>
<div id="container">
    <div id="div1">&nbsp;</div>
    <div id="div2">&nbsp;</div>
</div>
</body>
</html>


P. S. Ну, конечно, не заработает в IE < 8.


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