#javascript #angular #angular-material #virtualscroll
#javascript #угловая #angular-материал #virtualscroll
Вопрос:
Я ищу пакет виртуальной прокрутки angular со следующей функциональностью: 1) Горизонтальная виртуальная прокрутка 2) Ширина и высота контейнера изменчивы. 3) Ширина элементов устанавливается в процентах от ширины контейнера. 4) Элементы могут быть свернуты во время рендеринга.
Angular cdk в настоящее время работает с фиксированным размером элементов для высоты и ширины …. вот пример того, как это должно быть отображено:
.parent {
width: 100%;
height: 100%;
display: flex;
padding: 10px;
}
.child {
width: 33.333%;
height: 100%;
}
.child.mini {
width: 40px;
}
<div class="parent">
<div class="child" *ngFor="let item of items" [class.mini]="item.isMini">
<button (click)="item.isMini = !item.isMini">Minimize Me!</button>
{{item.name}}
</div>
</div>
Какие-либо рекомендации?
Комментарии:
1. Есть решение? У меня такая же «проблема»
2. В итоге я использовал ngx-scroller. Единственное, что он не поддерживает, это ltr.
3. Вы имеете в виду rtl? Имеет ли это какой-либо эффект, когда список ориентирован вертикально?
4. Я имел в виду rtl. Я не думаю, что это должно повлиять на вертикальный список
Ответ №1:
Команда Angular работает над autosize
директивой, которая позволяет прокручивать элементы разного размера.
Вы можете увидеть пример использования @angular/cdk-experimental
здесь .
Имейте в виду, что это ЭКСПЕРИМЕНТАЛЬНО и на данный момент не рекомендуется для производственного использования, но это дает вам ощущение, и если вам это действительно нужно, это может помочь.
Кроме того, проверьте проблему с github
Ответ №2:
Вы можете попробовать ngx-ui-scroll. Говоря о ваших требованиях, он поддерживает
Не уверен в %-базовых размерах, я полагаю, вам придется пересмотреть шаблоны в вашем приложении. Создание шаблонов и поток данных… Надеюсь, это поможет.
Ответ №3:
Компонент ag-virtual-scroll поддерживает виртуальную прокрутку с разной высотой строки, но прокрутка работает только по вертикали.
NPM:https://www.npmjs.com/package/ag-virtual-scroll
ДЕМОНСТРАЦИОННАЯ СТРАНИЦА:https://ericferreira1992.github.io/ag-virtual-scroll / (второй пример)
Ответ №4:
Если вы не хотите autosize
директиву, как упоминалось ранее,
Вот альтернативный способ:
Я решил проблему, динамически передавая значение height:
<cdk-virtual-scroll-viewport #scrollViewport
[itemSize]="itemSize" [style.height.px]="viewPortHeight">
</cdk-virtual-scroll-viewport>
Обратите внимание, что: мой компонент viewport был помещен в <ng-template>
;
itemSize
и viewPortHeight
являются переменными, определенными в контексте.