Когда вы используете height: 100%;
и расширяете дерево, высота области просмотра виртуальной прокрутки не обновляется до новой высоты дерева.Это остается на его px
значении.Мы можем вообще опустить этот CSS и установить height
в container
вместо этого, используя display: grid;
app.component.css
.container {
border: 1px solid black;
display: grid;
grid-template-rows: auto calc(100vh - 38.4px); // StackBlitz adds 8px padding to body and 'First div' has a height of 22.4px (8 + 8 + 22.4 = 38.4px).
}
calc(100vh - 38.4px)
необходимо заменить на желаемую высоту.Использование значений %
здесь кажется противоречащим тому, что вы упомянули в OP о том, что 'First div' фиксируется в верхней позиции, потому что, если div
задано 100%
, оно будет растягиваться по своему содержанию и в целом div
будет прокручиваться вне поля зрения.
Тогда все, что вам нужно, это использовать display: inline;
на tree-container
, чтобы он вписывался в основное div
.
angular-tree.component.css
.tree-container {
display: inline;
}
Примечание : я использовал 22.4
для nodeHeight
, так как при проверке узлов высота в точности равна 22.4px
.
Вот рабочий пример для StackBlitz .Вот превью того же.