lazySizes właśnie działa poprawnie. Musisz jednak zmienić swój znacznik w coś takiego.
<img data-src="better_me.jpg" data-srcset="better_me2.jpg 400w, better_me.jpg 200w" class="avatar photo avatar-200 lazyload" data-sizes="auto" alt="better_me" width="200" height="200" />
Uwaga srcset
zmienia się na data-srcset
i data-lazy
zmienia się na data-src
. Dodatkowo musisz dodać klasę lazyload.
Twój atrybut sizes
nie miał zbytniego sensu. Może chcesz zamiast tego używać deskryptorów x? Lub po prostu użyć sizes="200px"
? Nie wiem Po prostu zamieniłem go na data-sizes="auto"
, więc zostanie on automatycznie obliczony dla ciebie. (Ale w takim przypadku wymiar obrazu musi zostać obliczony przed załadowaniem obrazu.)
Funkcja lazySizes rzeczywiście ładuje obrazy przed wyświetleniem. Jest to duża poprawa dla wygody użytkownika. Użytkownik, który przewija coś do widoku, nie chce wtedy czekać. Lazyloader, który rozpoczyna pobieranie obrazu po jego wyświetleniu, zakłóca działanie użytkownika.
Jedną z zalet leniwizbiorów jest to, że ten leniwy moduł ładujący sprawdza, czy przeglądarka jest obecnie intensywnie pobierana, i decyduje o tym fakcie, niezależnie od tego, czy pobiera tylko obrazy w widoku, czy też ładuje obrazy w pobliżu.
Ale jeśli nie chcesz tego, możesz to kontrolować, ustawiając opcje lazySizes "expand
i expFactor
.
można spróbować spojrzeć tutaj: http://afarkas.github.io/lazysizes/ – areim
Próbowałem lazysizes. Jednak obrazy nadal są ładowane przed wyświetleniem obrazu. – toy