Ng-lazyload-image: рд╡реНрдпреВрдкреЛрд░реНрдЯ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдорд╛рд░реНрдЪ 2019  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tjoskar/ng-lazyload-image

рдЬрдм рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрд╡рд┐рдпрд╛рдВ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдкрд░ рдЖрд▓рд╕реА рд▓реЛрдб рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВ, рдХреЗрд╡рд▓ рдЬрдм рд╕реНрдХреНрд░реЙрд▓ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЫрд╡рд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВ, рдореИрдВ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдкрд░ рдореМрдЬреВрдж рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ? рдзрдиреНрдпрд╡рд╛рдж

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп @zieka ,

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИ рдЬрдм ng-lazyload-image рдЕрдВрджрд░ рдЖрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдЫрд╡рд┐ рдХреЛ рдЦрддрд░рд╛ рд╣реЛрдЧрд╛ (рдЫрд╡рд┐ рдХреА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рд╣реИ рддреЛ рдлрд┐рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВред

  1. IntersectionObserver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛)
    рдмрд╕ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ intersectionObserverPreset рдЬреЛрдбрд╝реЗрдВ:
import { LazyLoadImageModule, intersectionObserverPreset } from 'ng-lazyload-image';

...
LazyLoadImageModule.forRoot({
  preset: intersectionObserverPreset
})
...
  1. рдЫреБрдкрд╛ рдХреЗ рдмрдЬрд╛рдп рджреГрд╢реНрдпрдорд╛рди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдЫрд╡рд┐ рдЕрднреА рднреА рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ рдпрджрд┐ рд╡рд╣ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИред
  2. рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ scrollObservable рдмрдирд╛рдПрдВ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдЗрд╡реЗрдВрдЯ рдФрд░ activeRecipeIndex (рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕рдореЗрдВ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╡рд╣ рдЖрд╡рд╛рдЬ рдЕрдЬреАрдмред рдЖрдк ng-lazyload-image рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдк рдХреМрди рд╕рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ (рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕/рдХреНрд░реЛрдо/рд╕рдлрд╛рд░реА/рдПрдЬ/рдЖрдИрдУрдПрд╕/рдПрдВрдбреНрд░реЙрдЗрдб) рдореЗрдВ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЬрдм рддрдХ рдЖрдк рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рддрдм рддрдХ рдЫрд╡рд┐ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ?
рдХреНрдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд░реЗрдкреЛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдпрд╛ рдЬреАрдЖрдИрдПрдл/рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ?

рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдПрдЬ рдкрд░ рдореЗрд░рд╛ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдЙрд╕ рдШрдЯрдХ рдкрд░ [рдЫреБрдкрд╛] (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рддреНрдп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрд▓рд╕реА рд▓реЛрдб рдЫрд╡рд┐рдпрд╛рдВ рд╣реИрдВред
рдЬрдм рдЫрд┐рдкрд╛ рд╣реБрдЖ рдЭреВрдард╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рд▓реЛрдбрд░) рд╣реЛрддреА рд╣реИ, рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реЙрд▓ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рдХ рдмрдирд╛рддреЗ рд╣реИрдВред

рдШрдЯрдХ рдореЗрдВ рдореЗрд░рд╛ рдЖрдИрдПрдордЬреА рдЯреИрдЧ:

<img [lazyLoad]="recipe.image"
          [offset]="100"
          src="ng-assets/animations/recipe-loader.gif">

рдФрд░ рдореЗрд░рд╛ рдШрдЯрдХ:

<app-recipe *ngFor="let recipe of recipes; let i = index;"
                     [hidden]="activeRecipeIndex !== i"
                     [recipe]="recipe">
</app-recipe>

рд╣рд╛рдп @zieka ,

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИ рдЬрдм ng-lazyload-image рдЕрдВрджрд░ рдЖрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдЫрд╡рд┐ рдХреЛ рдЦрддрд░рд╛ рд╣реЛрдЧрд╛ (рдЫрд╡рд┐ рдХреА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рд╣реИ рддреЛ рдлрд┐рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВред

  1. IntersectionObserver рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛)
    рдмрд╕ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ intersectionObserverPreset рдЬреЛрдбрд╝реЗрдВ:
import { LazyLoadImageModule, intersectionObserverPreset } from 'ng-lazyload-image';

...
LazyLoadImageModule.forRoot({
  preset: intersectionObserverPreset
})
...
  1. рдЫреБрдкрд╛ рдХреЗ рдмрдЬрд╛рдп рджреГрд╢реНрдпрдорд╛рди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдЫрд╡рд┐ рдЕрднреА рднреА рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ рдпрджрд┐ рд╡рд╣ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИред
  2. рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ scrollObservable рдмрдирд╛рдПрдВ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдЗрд╡реЗрдВрдЯ рдФрд░ activeRecipeIndex (рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕рдореЗрдВ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╣реИрд▓реЛ, @tjoskar рдореИрдВрдиреЗ [offset]=800 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж @tjoskar рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :) рдореИрдВ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддрд╛ рд╣реВрдВ :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

vugar005 picture vugar005  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

myrsk picture myrsk  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kodeine picture kodeine  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

walfro picture walfro  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alisahinozcelik picture alisahinozcelik  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ