рдЬрдм рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрд╡рд┐рдпрд╛рдВ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдкрд░ рдЖрд▓рд╕реА рд▓реЛрдб рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВ, рдХреЗрд╡рд▓ рдЬрдм рд╕реНрдХреНрд░реЙрд▓ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЫрд╡рд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВ, рдореИрдВ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдкрд░ рдореМрдЬреВрдж рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ? рдзрдиреНрдпрд╡рд╛рдж
рд╡рд╣ рдЖрд╡рд╛рдЬ рдЕрдЬреАрдмред рдЖрдк 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
рдЕрдВрджрд░ рдЖрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдЫрд╡рд┐ рдХреЛ рдЦрддрд░рд╛ рд╣реЛрдЧрд╛ (рдЫрд╡рд┐ рдХреА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рд╣реИ рддреЛ рдлрд┐рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВред
intersectionObserverPreset
рдЬреЛрдбрд╝реЗрдВ:import { LazyLoadImageModule, intersectionObserverPreset } from 'ng-lazyload-image';
...
LazyLoadImageModule.forRoot({
preset: intersectionObserverPreset
})
...
scrollObservable
рдмрдирд╛рдПрдВ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдЗрд╡реЗрдВрдЯ рдФрд░ activeRecipeIndex
(рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕рдореЗрдВ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВредрд╣реИрд▓реЛ, @tjoskar рдореИрдВрдиреЗ [offset]=800
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?
рдзрдиреНрдпрд╡рд╛рдж @tjoskar рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :) рдореИрдВ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддрд╛ рд╣реВрдВ :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдп @zieka ,
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИ рдЬрдм
ng-lazyload-image
рдЕрдВрджрд░ рдЖрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдЫрд╡рд┐ рдХреЛ рдЦрддрд░рд╛ рд╣реЛрдЧрд╛ (рдЫрд╡рд┐ рдХреА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рд╣реИ рддреЛ рдлрд┐рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ)редрд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВред
рдмрд╕ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ
intersectionObserverPreset
рдЬреЛрдбрд╝реЗрдВ:scrollObservable
рдмрдирд╛рдПрдВ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдЗрд╡реЗрдВрдЯ рдФрд░activeRecipeIndex
(рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕рдореЗрдВ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред