Ngx-drag-scroll: 어린이λ₯Ό μœ„ν•œ λ“œλž˜κ·Έ-슀크둀 λΉ„ν™œμ„±ν™” λŒ€μ•ˆ

에 λ§Œλ“  2018λ…„ 06μ›” 12일  Β·  25μ½”λ©˜νŠΈ  Β·  좜처: bfwg/ngx-drag-scroll

  • κΈ°λŠ₯ μš”μ²­μ„ μ œμΆœν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

drag-scroll-disabled 속성과 같은 속성이 있으면 ν•΄λ‹Ή μš”μ†Œμ™€ ν•΄λ‹Ή μš”μ†Œμ˜ λͺ¨λ“  ν•˜μœ„ μš”μ†Œμ—μ„œ λ“œλž˜κ·Έ μŠ€ν¬λ‘€μ„ λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ λ‚˜λŠ” drag-scroll-disabled="BOOL" λ˜λŠ” drag-scroll-disabled="{{BOOL}}" 및 mouseenter, mouseleave λ₯Ό 성곡 없이 λ§Œλ“€κΈ° μœ„ν•΄ μ‹Έμš°κ³  μžˆμŠ΅λ‹ˆλ‹€.

feature request

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ„€, drag-scroll-disabled" attribute in the drag-scroll-item`을 μΆ”κ°€ν•˜μ—¬ μƒμœ„ 앱이 λ“œλž˜κ·Έ 및 μŠ€ν¬λ‘€ν•˜μ§€ μ•Šλ„λ‘ ν•  μƒκ°μž…λ‹ˆλ‹€. μ–΄λ–»κ²Œ 생각해?

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

μ•ˆλ…•ν•˜μ„Έμš”, @CrackerakiUA μž…λ‹ˆλ‹€. [drag-scroll-disabled]="disabled" 을 μ‚¬μš©ν•΄ λ³΄μ…¨μŠ΅λ‹ˆκΉŒ?

μ•„λž˜ μ½”λ“œ μΆ”κ°€

 dragScroll drag-scroll-y-disabled='true' snap-disabled='true' [drag-scroll-disabled]="bool"

그리고 μžμ‹ μž₯μ†Œμ—μ„œ:

 (mouseenter)="bool=true" (mouseleave)="bool=false"

λ˜ν•œ bool을 μ œκ³΅ν•˜μ—¬ λ³€κ²½λ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. [drag-scroll-disabled] λŠ” μ‹œμž‘κ°’μ—μ„œ μž‘λ™ν•˜λŠ” κ²ƒμ²˜λŸΌ λŠκ»΄μ§€λ©° λ³€μˆ˜λ₯Ό 변경해도 λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·€ν•˜μ˜ μ˜ˆμ œμ—μ„œ 토글이 μž‘λ™ν•˜κΈ° λ•Œλ¬Έμ— μ΄μƒν•©λ‹ˆλ‹€.

ν‹€λ¦° 점 있으면 지적 ν•΄μ£Όμ„Έμš”. 기본적으둜 drag-scroll-disabled κ°€ mouseenter drag-scroll-disabled λ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ³  μ§€μ‹œλ¬Έ μ»¨ν…Œμ΄λ„ˆμ˜ λͺ¨λ“  μžμ‹ μš”μ†Œμ— λŒ€ν•΄ mouseleave λ₯Ό μ›ν•©λ‹ˆλ‹€.

λͺ¨λ“  μžμ‹ μš”μ†Œμ˜ κ²½μš°μ™€ 달리 멋진 κΈ°λŠ₯은 λͺ¨λ“  μžμ‹μ— 속성을 μΆ”κ°€ν•˜κ³  ν•΄λ‹Ή μžμ‹μ˜ λ“œλž˜κ·Έ 슀크둀이 μ·¨μ†Œλ˜λŠ” κ²ƒμž…λ‹ˆλ‹€(stopPropagation μž‘λ™ 방식). μ•ˆλ‚΄ν•΄ μ£Όμ‹œλ©΄ ν•΄λ‹Ή κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€.

이둠적으둜 데λͺ¨λ₯Ό κ΅¬ν˜„ν•˜λ©΄ 잘 μž‘λ™ν•΄μ•Ό ν•˜μ§€λ§Œ 제 κ²½μš°μ—λŠ” ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆμ— μˆ˜λ§Žμ€ μš”μ†Œκ°€ 있고 λΉ„ν™œμ„±ν™”κ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ³΅μœ ν•  μ½”λ“œ 쑰각이 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ 데λͺ¨ 앱을 ν¬ν¬ν•˜μ—¬ μ •ν™•νžˆ 무엇을 μ˜λ―Έν•˜λŠ”μ§€ 보여주싀 수 μžˆμŠ΅λ‹ˆκΉŒ? μ½”λ“œλ‚˜ 데λͺ¨λ₯Ό μ½μœΌλ©΄μ„œ 유슀 μΌ€μ΄μŠ€λ₯Ό κ·Έλ¦¬λŠ” 데 어렀움을 κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€.

<div class="container" dragScroll drag-scroll-y-disabled="true" snap-disabled="true">
    <header title="This should drag background">Something is here</header>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <footer title="This should drag background">Something else</footer>
    <!-- everything else should also drag background -->
</div>

μ½”λ“œλ₯Ό ν™•μΈν•˜μ‹­μ‹œμ˜€. 아이디어가 λͺ…ν™•ν•˜μ§€ μ•ŠμœΌλ©΄ 데λͺ¨λ₯Ό λ§Œλ“€κ² μŠ΅λ‹ˆλ‹€.

@CrackerakiUA κ°μ‚¬ν•©λ‹ˆλ‹€. 아이디어λ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 곧 drag-scroll-item λ₯Ό λ„μž…ν•˜μ—¬ λͺ¨λ“  μžμ‹ μš”μ†Œλ₯Ό ν‘œμ‹œν•˜λŠ” 버전 2.0.0을 μΆœμ‹œν•  κ²ƒμž…λ‹ˆλ‹€. 2.0.0이 λ‚˜μ˜€λ©΄ λ°”λ‘œ 이 κΈ°λŠ₯을 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’‹μŠ΅λ‹ˆλ‹€. μ–Έμ œκ°€ 될지 μ•„μ‹­λ‹ˆκΉŒ? 도움이 ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?

2.0에 λŒ€ν•œ PR은 https://github.com/bfwg/ngx-drag-scroll/pull/145에 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” νšŒκ·€κ°€ μ—†λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ λ§Žμ€ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ μƒˆλ‘œμš΄ README https://github.com/bfwg/ngx-drag-scroll/blob/7592e3b08894ce23347c392c3fb88fc4c545323b/README.mdμž…λ‹ˆλ‹€.

PR을 μ‹€ν–‰ν•˜μ—¬ 더 λΉ λ₯΄κ²Œ λ§Œλ“€ 수 μžˆλ‹€λ©΄ 정말 쒋을 κ²ƒμž…λ‹ˆλ‹€. 감사 ν•΄μš”!

λ“œλž˜κ·Έ 슀크둀 ν•­λͺ©
λ„ˆλ¬΄ λ©‹μ§€κ²Œ λ³΄μž…λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 것을 μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
λ“œλž˜κ·Έ-슀크둀-ν•­λͺ© λ¬΄μ‹œ
배경을 λŒμ§€ μ•ŠλŠ” 열이 μžˆλŠ” trello와 같은 예λ₯Ό 상상해 λ³΄μ‹­μ‹œμ˜€.

λ„€, drag-scroll-disabled" attribute in the drag-scroll-item`을 μΆ”κ°€ν•˜μ—¬ μƒμœ„ 앱이 λ“œλž˜κ·Έ 및 μŠ€ν¬λ‘€ν•˜μ§€ μ•Šλ„λ‘ ν•  μƒκ°μž…λ‹ˆλ‹€. μ–΄λ–»κ²Œ 생각해?

μ•ˆλ…•ν•˜μ„Έμš”, 이것에 진전이 μžˆμŠ΅λ‹ˆκΉŒ?

그것은 λ‚΄ μž‘μ—… 지점 쀑 ν•˜λ‚˜μ— μžˆμ—ˆκ³  λ‚˜λŠ” 그것을 μžŠμ–΄ λ²„λ ΈμŠ΅λ‹ˆλ‹€. λ³€κ²½ 사항을 μ μš©ν•˜κ³  μ˜€λŠ˜κΉŒμ§€ μ μš©ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€. μ£„μ†‘ν•©λ‹ˆλ‹€ πŸ˜‚

쒋은 μ†Œλ¦¬μž…λ‹ˆλ‹€, κ°μ‚¬ν•©λ‹ˆλ‹€

λ³€κ²½ 사항은 7.1.0μž…λ‹ˆλ‹€. μžμ‹ μš”μ†Œμ— 'drag-disabled' 속성을 μΆ”κ°€ν•˜λ©΄ ν•΄λ‹Ή μš”μ†Œμ—μ„œ λŒκΈ°κ°€ λΉ„ν™œμ„±ν™”λ©λ‹ˆλ‹€.

#205μ—μ„œ 해결됨

μ•ˆλ…•ν•˜μ„Έμš”, 7.1.0을 ν…ŒμŠ€νŠΈν–ˆλŠ”λ° μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :(
λ‚΄ 예:

<drag-scroll [drag-scroll-y-disabled]="true">
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
</drag-scroll>

μž‘μ—… μš”μ†Œμ— drag-scroll-item 속성이 μ—†μŠ΅λ‹ˆλ‹€.

 <drag-scroll [drag-scroll-y-disabled]="true">
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
</drag-scroll>

drag-scroll-item λ“œλž˜κ·Έ-슀크둀 정지λ₯Ό μΆ”κ°€ν•œ 직후에 μž‘λ™ν•©λ‹ˆλ‹€. μΆ”κ°€ν•œ 사둀와 λ‹€μŒμ„ μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€.

 <drag-scroll [drag-scroll-y-disabled]="true" drag-scroll-item>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
</drag-scroll>

그리고 λ‹€μŒ μ‹œλ‚˜λ¦¬μ˜€:

<drag-scroll [drag-scroll-y-disabled]="true">
    <ng-container drag-scroll-item>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
    </ng-container>
</drag-scroll>

μ΄μƒν•˜λ‹€. μ €μ—κ²Œ 잘 μž‘λ™ν•˜κΈ° λ•Œλ¬Έμ— 데λͺ¨ μ•±μ—μ„œ μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” λ‹Ήμ‹ μ˜ 예λ₯Ό μ‚¬μš©ν•˜κ³  μž‘λ™ν•˜μ§€ μ•ŠλŠ” μ•„λž˜μ™€ 같은 것을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

<drag-scroll class="demo-one"
  drag-scroll-y-disabled="true"
  scrollbar-hidden="true"
  (dsInitialized)="onDragScrollInitialized()"
  (indexChanged)="onIndexChanged($event)"
  (reachesLeftBound)="leftBoundStat($event)"
  (reachesRightBound)="rightBoundStat($event)"
  (snapAnimationFinished)="onSnapAnimationFinished()"
  #nav
  >
  <ng-container *ngFor="let image of imagelist; let i = index;" drag-scroll-item>
    <img *ngIf="i%2==0" [src]="'assets/img/' + image" (click)="clickItem(image)" title="{{i}}" drag-disabled/>
    <img *ngIf="i%2!=0" [src]="'assets/img/' + image" (click)="clickItem(image)" title="{{i}}"/>
  </ng-container>

</drag-scroll>

μ‹€μ œλ‘œ drag-scroll-item λŠ” μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ μ»¨ν…Œμ΄λ„ˆ drag-scroll μ—λŠ” 끌 수 μžˆλŠ” κΈ°λŠ₯이 μžˆμŠ΅λ‹ˆλ‹€.

@bfwg λŠ” λ‚΄ μ˜ˆκ°€ λ‹Ήμ‹  νŽΈμ—μ„œ μž‘λ™ν•©λ‹ˆκΉŒ?

@bfwg λ¬΄μ—‡μœΌλ‘œ λ˜λŠ” μ™œ? λ“œλž˜κ·Έ-μŠ€ν¬λ‘€μ„ μ‚¬μš©ν•˜μ—¬ μ›Ήμ‚¬μ΄νŠΈμ˜ λͺ¨λ“  고슀트 λ“œλž˜κ·Έ 이미지 μœ ν˜• μš”μ†Œλ₯Ό μ°¨λ‹¨ν•©λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” μ€‘λ³΅μž…λ‹ˆλ‹€. λ‚΄ μ˜κ²¬μ„ μ°Έμ‘° ν•˜μ‹­μ‹œμ˜€.

문제λ₯Ό μ§€μ ν–ˆμŠ΅λ‹ˆλ‹€. @arman2r

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