Ngx-drag-scroll: ๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค์ด ๋ชจ๋ฐ”์ผ ๋ณด๊ธฐ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2017๋…„ 08์›” 22์ผ  ยท  22์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: bfwg/ngx-drag-scroll

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@suresh2018 iPhone 6 Plus์—์„œ ํ„ฐ์น˜ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ชจ ์•ฑ์—์„œ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  ํ•  ์ˆ˜์žˆ๋Š” npm install && npm start ํฌํŠธ์˜ ๋ฐ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ๋™ํ•˜๊ธฐ :4200 ? Chrome devtool์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  22 ๋Œ“๊ธ€

#20 ๊ด€๋ จ

ํ™๋ณด๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๊ฒ€ํ† ํ•˜๊ณ  ์ƒˆ ๋ฒ„์ „์„ ํ‘ธ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. PR ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค. @suresh2018 @nachocoig.

1.3.7์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ํ™˜์ž์—๊ฒŒ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@bfwg

1.3.6์—์„œ๋Š” ํด๋ฆญ ์ทจ์†Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ 1.3.7์—์„œ๋Š” ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ๋ฒ„์ „์€ ๋˜ํ•œ ๋ชจ๋ฐ”์ผ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค์ž…๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

image

์ž‘๋™ํ•˜์ง€ ์•Š์Œ 1.3.7

@suresh2018 ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค์ด ๋ฐ์Šคํฌํƒ‘ ๋ณด๊ธฐ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๋ฐ์Šคํฌํƒ‘์€ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ moblie๋Š” ์•„๋‹™๋‹ˆ๋‹ค(iphone 6 plus)

์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ์บ๋Ÿฌ์…€ ์ฝ”๋“œ ํ•œ ๋ฉ์–ด๋ฆฌ๋ฅผ ๋ณด์—ฌ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

* ๊ฐ€๋กœ ์Šคํฌ๋กค *

div class="hideoverflow" ๋“œ๋ž˜๊ทธ-์Šคํฌ๋กค

            img *ngFor="let img of pic.images; let idx = index" [src]="img .Image" 
              class="scroll-images"

          div

ํ„ฐ์น˜ ์žฅ์น˜์—์„œ ๋“œ๋ž˜๊ทธ-์Šคํฌ๋กค ๋ฐ๋ชจ(README.md)๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

@๋ผํž

๋ฐ๋ชจ ๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค์ด ํ„ฐ์น˜ ์žฅ์น˜๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

@suresh2018 @bfwg ๋‚ด Ionic 2 ํ”„๋กœ์ ํŠธ์—์„œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Chrome Dev Tools Mobile ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋ฉด ์Šคํฌ๋กค์ด ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋“œ๋ž˜๊ทธ-์Šคํฌ๋กค์ด ์‚ฌ์šฉ๋˜๋Š” ํ™”๋ฉด์€ ํ•ด๋‹น ํ™”๋ฉด์˜ ๋ชจ๋“  ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด
<ion-content>
  <ion-grid>
    <ion-row>
      <ion-col>
        <button ion-button (click)="foo()">Click Me!</button>
        <!-- On mobile view click stops working. If I remove [drag-scroll] it starts working again -->
      </ion-col>
      <ion-col>
        <div drag-scroll>
          <!-- *ngFor let item of items (horizontal scroll) -->
          <button ion-button (click)="someFunc()"></button>
          <!-- also click event don't work in mobile view. Fixes if [drag-scroll] is removed! -->
        </div>
      </ion-col>
      <ion-col>
        <button ion-button (click)="bar()">Click Me Again!</button>
        <!-- On mobile view click stops working. If I remove [drag-scroll] it starts working again -->
      </ion-col>
    </ion-row>
  </ion-grid>
</ion-content>
  1. [scrollbar-hidden]="true"๋Š” ์ „์ฒด ๋“œ๋ž˜๊ทธ-์Šคํฌ๋กค ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ™”๋ฉด์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค(Ionic 2). "๊ฑฐ์ง“"์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, @rahil051

  1. v1.3.7์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ณ ์ • ์†์„ฑ์— ๋Œ€ํ•ด scrollbar-hidden="true" ๋˜๋Š” ๋‹จ์ˆœํžˆ scrollbar-hidden ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์†์„ฑ์„ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ณ€์ˆ˜์— ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ [scrollbar-hidden]="flagVariable" ๋ฉ”๋ชจ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/bfwg/angular2-drag-scroll/blob/master/demo/app/home/home.component.html#L26์„ ํ™•์ธ

@suresh2018 iPhone 6 Plus์—์„œ ํ„ฐ์น˜ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ชจ ์•ฑ์—์„œ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  ํ•  ์ˆ˜์žˆ๋Š” npm install && npm start ํฌํŠธ์˜ ๋ฐ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ๋™ํ•˜๊ธฐ :4200 ? Chrome devtool์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @bfwg๋‹˜ ๋‹ต๋ณ€์ด ๋Šฆ์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค (๋ฏธ๋‹ˆํœด๊ฐ€์ค‘์ด์˜€์Šต๋‹ˆ๋‹ค ;D)

Angular ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ๋ชจ๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!
๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๊ฒƒ์„ ๋‚ด ์•ฑ์— ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๊ณ  ์—ญ์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ž˜ ํ•˜์…จ์–ด์š”!

์•ˆ๋…•ํ•˜์„ธ์š” @bfwg ์ž…๋‹ˆ๋‹ค .

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‚˜๋Š”์ด ๋ฌธ์ œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋กœ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•ด์•ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š” ..

์•ˆ๋…•ํ•˜์„ธ์š” @bfwg ์ž…๋‹ˆ๋‹ค .
๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‚˜๋Š”์ด ๋ฌธ์ œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋กœ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•ด์•ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”

๋‹น์‹ ์„ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์„ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋ฌธ์ œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๋ด, ์ด๊ฒƒ์€ ๋‹จ์—ฐ ์ตœ๊ณ ์˜ ng2 ํšŒ์ „ ๋ชฉ๋งˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค! ๊ทธ๋Ÿฐ๋ฐ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ์•ˆ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฐ๋ชจ ์•ฑ์€ ๋ฐ์Šคํฌํ†ฑ๊ณผ ๋ชจ๋ฐ”์ผ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚ด ์ฝ”๋“œ๋Š” ๋ฐ์Šคํฌํ†ฑ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋ž˜๊ทธ๋Š” ๋ชจ๋ฐ”์ผ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๊ฐ€๋กœ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•ด์•ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค, ๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค ์™ธ๋ถ€์˜ ๋ž˜ํผ ๋ฐ ๋“œ๋ž˜๊ทธ ์Šคํฌ๋กค ๋‚ด๋ถ€์˜ div(๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐํ•ฉ)์—์„œ ๋„ˆ๋น„๋ฅผ 100%๋กœ ์„ค์ •ํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:
๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๊ณ  ๋ชจ๋ฐ”์ผ์—์„œ ๋ฐฐํฌ ๋ฐ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. home.component์™€ ๋™์ผํ•œ html๊ณผ css๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๋“œ๋ž˜๊ทธ๋Š” ๋ฐ์Šคํฌํƒ‘์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ์— ๊ฐ์ง„ ์žฌ๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

@kzntswsk๋‹˜ , ํ”ผ๋“œ๋ฐฑ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. https://plnkr.co/์—์„œ ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ

@kzntswsk๋‹˜ , ํ”ผ๋“œ๋ฐฑ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. https://plnkr.co/์—์„œ ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ

๋‚˜๋Š” ๋˜ํ•œ ์ด๊ฒƒ์„ ๋งŒ๋‚ฌ๋‹ค. ์ง€๊ธˆ์€ plnkr์„ ํ•  ์ˆ˜ ์—†์ง€๋งŒ scrollbar-hidden="true" ๋กœ๋งŒ ํ•˜๋Š” ๋ฐ˜๋ฉด scrollbar-hidden ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋‚˜๋Š”์— ๊ฐ€๋ฉด .drag-scroll-content ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐ ์„ ํƒ ํ•ด์ œ overflow: hidden auto; ๊ทธ๊ฒƒ์„ ์ˆ˜์ •ํ•˜์ง€๋งŒ ์Šคํฌ๋กค์„ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ๋ชจ๋ฐ”์ผ์šฉ ์Šคํฌ๋กค๋ฐ”๋ฅผ ์ˆจ๊ธฐ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์žฅ์น˜ ๋ชจ๋“œ์˜ Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰