Ng-lazyload-image: لا تعمل صورة التحميل الكسول مع التمهيد المسبق

تم إنشاؤها على ٥ أبريل ٢٠١٨  ·  3تعليقات  ·  مصدر: tjoskar/ng-lazyload-image

Preboot (https://github.com/angular/preboot) يجعل التطبيق بأكمله غير مرئي في البداية مما يتسبب في عدم تحميل عنصر التحميل البطيء للصورة - الوظيفة isVisible ترجع خطأ.

يستخدم fromElement في rect.ts getBoundingClientRect والذي في هذه الحالة لا يُرجع أبعادًا.

الحل السريع هو تعيين سمة offset على سبيل المثال 1 مما يجعل intersectsWith يعود true .

التعليق الأكثر فائدة

الحل السريع هو تعيين سمة الإزاحة على سبيل المثال 1 مما يجعل intersectsWith العودة صحيحة.

هذا في الواقع خطأ ، لا ينبغي أن يحدث. سأفتح قضية منفصلة لذلك.

ال 3 كومينتر

مرحبًا @ lares83 ،

شكرا على إعلامي. هذه مشكلة صعبة للغاية لأنه لا توجد طريقة لمعرفة متى تصبح الصورة مرئية.

الإصلاح السريع هو تعيين offset=1 كما تقترح ولكن هذا سيؤدي إلى تحميل جميع الصور عندما تصبح مرئية ، حتى لو لم تكن موجودة في منفذ العرض. هذا لأن ng-lazyload-image ليس لديه طريقة لمعرفة مكان الصورة قبل أن تصبح مرئية وفي ذلك الوقت فات الأوان (لن نحصل على حدث جديد حتى يقوم المستخدم بالتمرير).

تتمثل إحدى طرق إصلاحه في الاستماع إلى حدث PrebootComplete :

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

ثم في النموذج:

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

يمكنك بسهولة إنشاء مكون مخصص يلتف حول lazyLoad ويمرر scrollAndPrebootComplete$ .

حل آخر هو استخدام IntersectionObserver لكن هذا يتطلب # 304 ليتم حلها.

الحل السريع هو تعيين سمة الإزاحة على سبيل المثال 1 مما يجعل intersectsWith العودة صحيحة.

هذا في الواقع خطأ ، لا ينبغي أن يحدث. سأفتح قضية منفصلة لذلك.

أنا أغلق هذا. اسمحوا لي أن أعرف أن الحل المقترح أعلاه لم ينجح.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

sandeepdussa picture sandeepdussa  ·  9تعليقات

stratio84 picture stratio84  ·  6تعليقات

AzerHeshim picture AzerHeshim  ·  5تعليقات

kodeine picture kodeine  ·  7تعليقات

rimlin picture rimlin  ·  5تعليقات