web-dev-qa-db-ja.com

仮想スクロールの場合angular 4可変/動的高さ画像

画像やテキストを含むTwitterのようなフィード画面を実装しています。私はangular 4.現在使用しています 仮想スクロール を使用して、ユーザーが100アイテムのように深くスクロールしたときのパフォーマンスを向上させています。私のリストにある問題は、すべてのアイテムのサイズが可変であるということです。このライブラリは動的な高さを完全にはサポートしていません。最小の固定高さが必要です。モバイルデバイスや一部のブラウザでちらつきが発生します。React Js Virtual scroll with Angularフィードリストがスムーズになるように、誰かが私に解決策を提案できますか?.

4
Rakesh

ngx-ui-scroll は、可変高さのコンテンツなど、必要なすべての機能をサポートしています。この問題を本当に克服したいのであれば、これを使用することをお勧めします。

2
Rakesh

サードパーティのライブラリを使用せずにGoogleマテリアルを使用する場合は、次のようにします(for Angular 7.2):

_import { ScrollingModule } from '@angular/cdk/scrolling';
import { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';
_

両方をモジュールのインポートに入れます。 CSSで_<cdk-virtual-scroll-viewport>_に高さを設定し(たとえば、50ピクセルのヘッダーを除外して画面全体に表示する場合は、calc(100vh - 50px)になります)、itemSize = "10"(またはその他の小さい値数、それはうまくいきます)。

そして、繰り返されるアイテムセットに_[style.height]="'auto'"_。

アイテムへのスクロールや無限スクロールなど、一部の機能はこれでは機能しないことに注意してください(表示されるアイテムの数はitemSizeによって計算され、すべてのアイテムの測定を開始して平均を計算しない限り、正確にはわからないためです)個人的にはあまりにもハッキーです)

ソース: https://github.com/angular/material2/issues/1011

2
Phil