Ng-lazyload-image: PerfectScrollbarプラグインでは機能しません。

作成日 2018年01月10日  ·  10コメント  ·  ソース: tjoskar/ng-lazyload-image

やあ
ページが最初に読み込まれると画像がダウンロードされますが、下にスクロールすると画像がダウンロードされません。 イベントが発生していないようです。
`` `

{{従業員名}}

`` `
Angularバージョン:5.1.2
"ng-lazyload-image": "^ 3.4.2"、
あなたが問題を解決することを願っています。
ありがとう

全てのコメント10件

簡単なAngular5アプリをセットアップしましたが、正常に機能しているようです-https://stackblitz.com/edit/angular-9guzc4?embed = 1 app.component.html

画像が別のスクロールコンテナにある場合は、 scrollTargetを使用する必要があります。 APIドキュメントまたは例を参照してください。

@ vugar005 、あなたの外側のdivがposition: relativeスタイルであることがわかります。 このdivとposition: absoluteウィンドウの間にラッパーがありますか?

@ sapierens
TSで
this.scroll = document.getElementById('main_content');

<perfect-scrollbar id="main_content">
  <div class="content d-flex flex-wrap"  style="position: relative"  #sc>
         <div class="brick" *ngFor="let employee of employees">
           <div class="employeeBox animated zoomIn " [routerLink]="['/employees', employee.id]">
             <div class="employeePhoto">
               <img    [defaultImage]="'assets/icons/user.svg'"
                       [lazyLoad]="employee.imgUrl"
                       [useSrcset]="true"
                       [scrollTarget]="scroll"
               >
             </div>
             <div class="employeeInfo">
               <p>{{employee.name}}</p>
             </div>
           </div>
         </div>
       </div>
</perfect-scrollbar>

完全なスクロールバーをオーバーフロー自動でdivに変更し、期待どおりに機能しますが、完全なスクロールバーを維持したいと思います。 だから私がしたことは:
this.scrollをコンソールするとき

<perfect-scrollbar id="main_content"  >
   <div style="position:static"  class="ps" ng-reflect-disabled=false> ... </div>
</perfect-scrollbar>

したがって、this.scrollをdocument.getElementById( 'main_content')。children [0]に割り当てることによって; 問題は完全に解決されました。
手伝ってくれてありがとう。

perfect-scrollbarたことはありませんが、テンプレートでthis.perfectScrollbar$ = Observable.fromEvent(document.getElementById('main_content'), 'ps-scroll-y')を使用できると思います。

<img [defaultImage]="'assets/icons/user.svg'"
     [lazyLoad]="employee.imgUrl"
     [useSrcset]="true"
     [scrollObservable]="perfectScrollbar$">

@tjoskar残念ながらそれはうまく
唯一の一時的な解決策は、scrollTargetをに割り当てることです
document.getElementById('main_content').children[0];

問題を再現できる小さなgitrepo / stackblitz / plnkrを作成できますか?

さて、すぐにstackblitzに追加して、ここで共有します。

stackblitzデモをご覧ください。
https://stackblitz.com/edit/angular-wxyi2t

私はそれをこのように動作させることができました-https://stackblitz.com/edit/angular-zovu45
それが最善の解決策かどうかはわかりませんが。

https://github.com/tjoskar/ng-lazyload-image/issues/275#issuecomment -356853681で提案されている@tjoskarのように解決することもできますが、ディレクティブとして代わりにperfect-scrollbarを使用する必要があります。それが機能するためのコンポーネント(https://github.com/zefoy/ngx-perfect-scrollbar#installing-and-usage under DIRECTIVE USAGE )。

@sapierensはいそれも機能します。 私はほとんどすべてのプロジェクトで完璧なスクロールバーを使用しています。 それが私がそれを機能させるために重要だった理由です。ありがとう。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

alisahinozcelik picture alisahinozcelik  ·  4コメント

stratio84 picture stratio84  ·  6コメント

AzerHeshim picture AzerHeshim  ·  5コメント

sandeepdussa picture sandeepdussa  ·  9コメント

coryrylan picture coryrylan  ·  7コメント