Ng-lazyload-image: рдЖрд▓рд╕реА рд▓реЛрдб рдЫрд╡рд┐ рдкреНрд░реАрдмреВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tjoskar/ng-lazyload-image

рдкреНрд░реАрдмреВрдЯ (https://github.com/angular/preboot) рдмрдирд╛рддрд╛ рд╣реИ рдкреВрд░рд╛ рдРрдк рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЖрд▓рд╕реА рд▓реЛрдб рдШрдЯрдХ рдХреЛ рдЫрд╡рд┐ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ - рдлрд╝рдВрдХреНрд╢рди isVisible рдЭреВрдард╛ рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИред

fromElement рдореЗрдВ rect.ts getBoundingClientRect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ 0 рдЖрдпрд╛рдо рджреЗрддрд╛ рд╣реИред

рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди offset рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1 рдЬреЛ intersectsWith true рд▓реМрдЯрд╛рддрд╛ рд╣реИред

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

рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдСрдлрд╕реЗрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 1 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЛ рд╕рд╣реА рдмрдирд╛рддрд╛ рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реВрдВрдЧрд╛ред

рд╕рднреА 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 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЛ рд╕рд╣реА рдмрдирд╛рддрд╛ рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реВрдВрдЧрд╛ред

рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдКрдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

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

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

vincent-cm picture vincent-cm  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AzerHeshim picture AzerHeshim  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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