Ng-lazyload-image: Gambar pemuatan lambat tidak berfungsi dengan preboot

Dibuat pada 5 Apr 2018  ·  3Komentar  ·  Sumber: tjoskar/ng-lazyload-image

Preboot (https://github.com/angular/preboot) membuat seluruh aplikasi tidak terlihat di awal yang menyebabkan komponen lazy load tidak memuat gambar - fungsi isVisible mengembalikan false.

fromElement di rect.ts menggunakan getBoundingClientRect yang dalam hal ini mengembalikan 0 dimensi.

Solusi cepat adalah menyetel atribut offset ke misalnya 1 yang membuat intersectsWith kembali true .

Komentar yang paling membantu

Solusi cepat adalah menyetel atribut offset ke misalnya 1 yang membuat intersectsWith kembali benar.

Itu sebenarnya bug, seharusnya tidak terjadi. Saya akan membuka edisi terpisah untuk itu.

Semua 3 komentar

Hai @lares83 ,

Terima kasih telah memberi tahu saya. Ini adalah masalah yang cukup rumit karena tidak ada cara untuk mengetahui kapan gambar menjadi terlihat.

Perbaikan cepat adalah menyetel offset=1 seperti yang Anda sarankan, tetapi itu akan menyebabkan semua gambar dimuat saat terlihat, meskipun tidak ada di area pandang. Ini karena ng-lazyload-image tidak memiliki cara untuk mengetahui di mana gambar itu sebelum terlihat dan pada saat itu sudah terlambat (kami tidak akan mendapatkan acara baru sampai pengguna menggulir).

Salah satu cara untuk memperbaikinya adalah dengan mendengarkan acara PrebootComplete :

constructor() {
  this.scrollAndPrebootComplete$ = Observable.merge(
    Observable.fromEvent(window, 'scroll'),
    Observable.fromEvent(window, 'PrebootComplete')
  );
}

Dan kemudian di templat:

<img [lazyLoad]="lazyLoadImage" [scrollObservable]="scrollAndPrebootComplete$" />

Anda dapat dengan mudah membuat komponen khusus yang membungkus lazyLoad dan meneruskan scrollAndPrebootComplete$ .

Solusi lain adalah menggunakan IntersectionObserver tetapi itu membutuhkan #304 untuk diselesaikan.

Solusi cepat adalah menyetel atribut offset ke misalnya 1 yang membuat intersectsWith kembali benar.

Itu sebenarnya bug, seharusnya tidak terjadi. Saya akan membuka edisi terpisah untuk itu.

Aku menutup ini. Beri tahu saya bahwa solusi yang diusulkan di atas tidak berhasil.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

el-davo picture el-davo  ·  4Komentar

audacitus picture audacitus  ·  5Komentar

philipgiuliani picture philipgiuliani  ·  11Komentar

AndreasSchmid1 picture AndreasSchmid1  ·  3Komentar

stratio84 picture stratio84  ·  6Komentar