Ng-lazyload-image: Perfect Scrollbar ν”ŒλŸ¬κ·ΈμΈμ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2018λ…„ 01μ›” 10일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: tjoskar/ng-lazyload-image

μ•ˆλ…•ν•˜μ„Έμš”
νŽ˜μ΄μ§€κ°€ 처음 λ‘œλ“œλ˜λ©΄ 이미지가 λ‹€μš΄λ‘œλ“œλ˜μ§€λ§Œ μ•„λž˜λ‘œ μŠ€ν¬λ‘€ν•˜λ©΄ 이미지가 λ‹€μš΄λ‘œλ“œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λ²€νŠΈκ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.
```

{{직원 이름}}

```
각도 버전: 5.1.2
"ng-lazyload-image": "^3.4.2",
문제λ₯Ό ν•΄κ²°ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.
감사 ν•΄μš”

λͺ¨λ“  10 λŒ“κΈ€

λΉ λ₯Έ Angular 5 앱을 μ„€μ •ν–ˆλŠ”λ° 잘 μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. - https://stackblitz.com/edit/angular-9guzc4?embed=1&file=app/app.component.html

이미지가 λ³„λ„μ˜ 슀크둀 μ»¨ν…Œμ΄λ„ˆμ— μžˆλŠ” 경우 scrollTarget λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. API λ¬Έμ„œ λ˜λŠ” 예제λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

@vugar005 , μ™ΈλΆ€ div에 position: relative μŠ€νƒ€μΌμ΄ μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. position: absolute 이 div와 μ°½ 사이에 λž˜νΌκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@sapierens @tjoskar. 감사 ν•΄μš”. Scroll Target을 μΆ”κ°€ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν”ŒλŸ¬κ·ΈμΈμ€ μ™„λ²½ν•œ μŠ€ν¬λ‘€λ°”μ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
TSμ—μ„œ
this.scroll = document.getElementById('main_content');

<perfect-scrollbar id="main_content">
  <div class="content d-flex flex-wrap"  style="position: relative"  #sc>
         <div class="brick" *ngFor="let employee of employees">
           <div class="employeeBox animated zoomIn " [routerLink]="['/employees', employee.id]">
             <div class="employeePhoto">
               <img    [defaultImage]="'assets/icons/user.svg'"
                       [lazyLoad]="employee.imgUrl"
                       [useSrcset]="true"
                       [scrollTarget]="scroll"
               >
             </div>
             <div class="employeeInfo">
               <p>{{employee.name}}</p>
             </div>
           </div>
         </div>
       </div>
</perfect-scrollbar>

μ˜€λ²„ν”Œλ‘œ μžλ™μ„ μ‚¬μš©ν•˜μ—¬ μ™„λ²½ν•œ 슀크둀 λ§‰λŒ€λ₯Ό div둜 λ³€κ²½ν–ˆμœΌλ©° μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ μ™„λ²½ν•œ 슀크둀 λ§‰λŒ€λ₯Ό μœ μ§€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ λ‚΄κ°€ ν•œ 일은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
λ‚΄κ°€ 이것을 μœ„λ‘œν•  λ•Œ.scroll

<perfect-scrollbar id="main_content"  >
   <div style="position:static"  class="ps" ng-reflect-disabled=false> ... </div>
</perfect-scrollbar>

λ”°λΌμ„œ this.scroll을 document.getElementById('main_content').children[0]; λ¬Έμ œκ°€ μ™„μ „νžˆ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
도움에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

λ‚˜λŠ” perfect-scrollbar μ‚¬μš©ν•œ 적이 μ—†μ§€λ§Œ this.perfectScrollbar$ = Observable.fromEvent(document.getElementById('main_content'), 'ps-scroll-y') λ₯Ό μ‚¬μš©ν•œ λ‹€μŒ ν…œν”Œλ¦Ώμ—μ„œ λ‹€μŒμ„ μ‚¬μš©ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

<img [defaultImage]="'assets/icons/user.svg'"
     [lazyLoad]="employee.imgUrl"
     [useSrcset]="true"
     [scrollObservable]="perfectScrollbar$">

@tjoskar λΆˆν–‰νžˆλ„ 그것은 μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
μœ μΌν•œ μž„μ‹œ 해결책은 scrollTarget을 ν• λ‹Ήν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
document.getElementById('main_content').children[0];

문제λ₯Ό μž¬ν˜„ν•  수 μžˆλŠ” μž‘μ€ gitrepo/stackblitz/plnkr을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ?

μ’‹μ•„, 곧 stackblitz에 μΆ”κ°€ν•˜κ³  여기에 κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.

stackblitz 데λͺ¨λ₯Ό μ‚΄νŽ΄λ³΄μ‹­μ‹œμ˜€.
https://stackblitz.com/edit/angular-wxyi2t

λ‚˜λŠ” λ‹€μŒκ³Ό 같이 μž‘λ™ν•˜λ„λ‘ κ΄€λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€ - https://stackblitz.com/edit/angular-zovu45
그것이 μ΅œμ„ μ˜ 해결책인지 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

https://github.com/tjoskar/ng-lazyload-image/issues/275#issuecomment -356853681μ—μ„œ μ œμ•ˆν•œ @tjoskar 와 같이 ν•΄κ²°ν•  μˆ˜λ„ μžˆμ§€λ§Œ λŒ€μ‹  Perfect-scrollbarλ₯Ό μ§€μ‹œλ¬ΈμœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. μž‘λ™ν•˜κΈ° μœ„ν•œ ꡬ성 μš”μ†Œ( https://github.com/zefoy/ngx-perfect-scrollbar#installing-and-usage μ•„λž˜ DIRECTIVE USAGE ).

@sapierens 예 그것도 μž‘λ™ν•©λ‹ˆλ‹€. 거의 λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ μ™„λ²½ν•œ μŠ€ν¬λ‘€λ°”λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 그것이 λ‚΄κ°€ 그것을 μž‘λ™μ‹œν‚€κΈ° μœ„ν•΄ μˆ˜μž…ν’ˆμ΄μ—ˆλ˜ μ΄μœ μž…λ‹ˆλ‹€.κ³ λ§ˆμ›Œμš”.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰