рдирдорд╕реНрддреЗ,
рдЬрдм рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред
рд╕рдВрдкрддреНрддрд┐ '_el' рдирд┐рдЬреА рд╣реИ рдФрд░ рдХреЗрд╡рд▓ 'рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ' рд╡рд░реНрдЧ рдХреЗ рднреАрддрд░ рд╣реА рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИред
рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгред
<ion-content #container>
<div>
<div class="bootstrap-row">
<div class="col col-50" *ngFor="let product of products">
<img *ngIf="container._scroll._el.offsetParent !== null" [lazyLoad]="imagePath+product.image" src="img/others/load-product-thumb.png" [scrollTarget]="container._scroll._el">
</div>
</div>
</div>
</ion-content>
рдЗрд╕рдиреЗ рдореЗрд░рд╛ https://github.com/tjoskar/ng2-lazyload-image/issues/73 рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреА рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред
рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЖрдпрдирд┐рдХ 2 рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рдЖрд▓рд╕реА рд▓реЛрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдпрдирд┐рдХ 2 рдРрдкреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрдм рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ
@ sidjoshi001 , рдЬрдм рдЖрдк "рдмрд┐рд▓реНрдб" рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдПрдУрдЯреА рд╕рдВрдХрд▓рди рд╣реИ ?
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рдЖрдпрдирд┐рдХ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред *ngIf="container._scroll._el.offsetParent !== null" [scrollTarget]="container._scroll._el"
рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХрдорд╛рддреНрд░ (рд╡рд░реНрддрдорд╛рди) рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдпрдирд┐рдХ 2 рдРрдкреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА рдЖрдпрдирд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдЖрдпрдирд┐рдХ рдЬреНрдЮрд╛рди рд╕реАрдорд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдкрд╛рдпрд╛; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдпрдирд┐рдХ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрдХреНрд░реЙрд▓ рд╢реНрд░реЛрддрд╛ рд╣реИред
рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдкреБрди: рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдХреЛрдгреАрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рд╣реЛ рдФрд░ рдпрд╣ рдХрд┐ рд╕рднреА рддрд░реНрдХ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ lib-file рдореЗрдВ рд╣реЛрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдо рдПрдХ рдирдпрд╛ рдЖрдпрдирд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ lazyLoadIonic
(рдпрд╛ рдХреБрдЫ) рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
@Directive({
selector: 'lazyLoadIonic'
})
export class LazyLoadIonic {
@Input('lazyLoad') lazyImage;
@Input('src') defaultImg;
@Input('errorImage') errorImg;
@Input() offset
constructor(@Host() private _content: Content, private el: ElementRef) {}
ngOnInit() {
lazyLoadImage(
this.lazyImage,
this.defaultImg,
this.errorImg,
this.offset,
this.el,
┬а this._content.ionScroll
).subscribe();
}
}
@Directive({
selector: '[lazyLoad]'
})
export class LazyLoadImageDirective {
@Input('lazyLoad') lazyImage;
@Input('src') defaultImg;
@Input('errorImage') errorImg;
@Input() scrollTarget;
@Input() offset
constructor(private el: ElementRef) {
this.elementRef = el;
}
ngOnInit() {
lazyLoadImage(
this.lazyImage,
this.defaultImg,
this.errorImg,
this.offset,
this.el,
┬а getScrollListener(this.scrollTarget)
).subscribe();
}
}
function lazyLoadImage(lazyImage, defaultImg, errorImg, offset, elementRef, scrollObservable) {
return scrollObservable.filter(() => isVisible(elementRef, offset))
.take(1)
.switchMap(() => loadImage(lazyImage))
// and so on
}
рдореЗрд░рд╛ рд╕рдордп рдЕрднреА рд╕реАрдорд┐рдд рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдХрдм рдорд┐рд▓реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдкреАрдЖрд░ рдХрд╛ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ :)
@tjoskar рдЕрд░реЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ Ionic2 рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ .. !! рдЬрд╡рд╛рдм рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░
@ sidjoshi001 , рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛: / рдореБрдЭреЗ рдЕрднреА рддрдХ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
@tjoskar рдЕрднреА рднреА рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ ... !! ionic2 . рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
@ sidjoshi001 , рдореИрдВ рдЕрднреА рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рдХрдм рд╣реИ: /
@ sidjoshi001 , @Host() private _content: Content
рд╕рд╛рде рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рдпрд╛рд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдо рдХреЗрд╡рд▓ рдореВрд▓ рдШрдЯрдХ рд╕реЗ Content
рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрд▓рд╕реА рд▓реЛрдб рдирд┐рд░реНрджреЗрд╢ рдПрдХ рдмрд╛рд▓ рдкрддреНрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐ scrollObservable
рдЬреЛрдбрд╝реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЖрдпрдирд┐рдХ рд╕реНрдХреНрд░реЙрд▓ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
<ion-content #container padding>
<img src="https://www.placecage.com/1000/1000" [lazyLoad]="lazyLoadImage" [scrollObservable]="container.ionScroll" />
</ion-content>
рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 2.3.1: $ npm install [email protected]
рдореЗрдВ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИред
@tjoskar рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ...
рд▓реЗрдХрд┐рди рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ
рд▓реЗрдХреНрд╕рд░ рдПрд░рд░: рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХреИрд░реЗрдХреНрдЯрд░ [╨╛] рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рдХреЙрд▓рдо 12 рдкрд░ [container.i╨╛nScroll]' рдХреЙрд▓рдо 13 рдореЗрдВ [container.i╨╛nScroll]
рдореЗрд░рд╛ рдХреЛрдб рдиреАрдЪреЗ рд╣реИ ..
<ion-content class="content" #container>
<ion-spinner class="page-loading" color="purple" *ngIf="!categories"></ion-spinner>
<div *ngIf="categories">
<div class="categories" *ngFor="let category of categories.categories; let i = index ">
<div class="title" id="{{i}}">{{ category.name }}</div>
<div class="bootstrap-row">
<div class="col col-33 siblings" *ngFor="let sibling of category.siblings; let odd = odd" [ngClass]="odd ? 'odd' : null" (click)="toProductList(sibling)">
<img src="assets/img/others/load-300-300.png" [lazyLoad]="categories.imagePath+sibling.image" [scrollObservable]="container.i╨╛nScroll" />
<div class="name">{{ sibling.name | trancate:25 }}</div>
</div>
</div>
</div>
</div>
</ion-content>
@ sidjoshi001, рд╢рд╛рдпрдж рдПрдХ рд▓рдВрдмреЗ рд╢реЙрдЯ рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ o
рдореЗрдВ i╨╛nScroll
рдирд╣реАрдВ рд╣реИ рдПрдХ рд╕рд╛рдзрд╛рд░рдг o
рдХреЛрдб рдореЗрдВ рдЖрдк рднреА рд╢рд╛рдорд┐рд▓ рдереЗред рдЕрдЧрд░ рдореИрдВ ╨╛
рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЪрд╛рд░рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред '╨╛'.charCodeAt(0)
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ) рдореБрдЭреЗ 1086 рдорд┐рд▓рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп o
рдореЗрдВ рдЪрд╛рд░рдХреЛрдб 111 рд╣реЛрддрд╛ рд╣реИред рддреЛ, рдХреНрдпрд╛ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ container.i╨╛nScroll
рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣рд╛рде рд╕реЗ рдЯрд╛рдЗрдк рдХрд░реЗрдВ?
рдпреЛ... @tjoskar рдзрдиреНрдпрд╡рд╛рдж, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ..!!
рдпрд╣рд╛рдВ рдЕрд╕рд▓реА рдореБрджреНрджрд╛ рд╣реИ @tjoskar рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рджреЗрдЦрд╛ рдФрд░ @ sidjoshi001 рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛: рд╕реНрдорд╛рдЗрд▓реА:
@ sidjoshi001 , рдмрдврд╝рд┐рдпрд╛! рдореИрдВ рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ред рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ :)
@comfortme , рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ ╨╛
рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рдерд╛ (рдпрд╣ рдореЗрд░реЗ рдИрдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд▓рди рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдпрджрд┐ рдЖрдк рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ container.i╨╛nScroll
рдореЗрдВ рд╕реНрдерд┐рддрд┐ 12 рдкрд░ рд╣реИред
рдЗрд╕реЗ https://github.com/tjoskar/ng2-lazyload-image/commit/1e0e9d1df2c6c46c7ebd820b6a5129ab67a38b39 рдХреЗ рд╕рд╛рде рдмрдВрдж