Leaflet: ios : dragging = false์ด์ง€๋งŒ์ง€๋„์—์„œ ์Šคํฌ๋กค ํ•  ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2017๋…„ 03์›” 29์ผ  ยท  20์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Leaflet/Leaflet

์žฌ์ƒ์‚ฐ ๋ฐฉ๋ฒ•

  • ๋‚ด๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ ์ „๋‹จ์ง€ ๋ฒ„์ „ : 1.0.3
  • ์‚ฌ์šฉ์ค‘์ธ ๋ธŒ๋ผ์šฐ์ € (๋ฒ„์ „ ํฌํ•จ) : Safari / 602.1
  • ์‚ฌ์šฉ์ค‘์ธ OS / ํ”Œ๋žซํผ (๋ฒ„์ „ ํฌํ•จ) : iOS 10

๋‚ด๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ํ–‰๋™๊ณผ๋ณด๊ณ ์žˆ๋Š” ํ–‰๋™

dragging ์ด ๋น„ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ iOS์—์„œ์ง€๋„ ์œ„๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ํŽ˜์ด์ง€๊ฐ€ ์Šคํฌ๋กค ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Android์—์„œ๋Š” dragging = false ์ธ ๊ฒฝ์šฐ ๋“œ๋ž˜๊ทธํ•˜์—ฌ ์Šคํฌ๋กค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์˜ˆ

iOS์—์„œ๋Š”์ง€๋„์—์„œ ๋“œ๋ž˜๊ทธ ํ•  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

https://jsfiddle.net/geg8yLe3/

์ด๊ฒƒ์€ # 5343๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

help wanted in progress

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

๋‹ค์Œ ์ฝ”๋“œ๋Š”์ง€๋„๊ฐ€ ์•„๋‹Œ ํ•œ ์†๊ฐ€๋ฝ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กคํ•˜๋Š” ๋™์‹œ์— ๋‘ ์†๊ฐ€๋ฝ์œผ๋กœ์ง€๋„๋ฅผ ํ™•๋Œ€ / ์ถ•์†Œ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋งˆ์ปค๋ฅผ ํƒญํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ์œ ํšจํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด์ง€๋„๊ฐ€ ์Šคํฌ๋กค์ด ํ•„์š”ํ•œ ๋” ํฐ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€์ผ ๋•Œ ๋ชจ๋ฐ”์ผ์—์„œ ์‚ฌ์šฉ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

L.map('map', {
    dragging: !L.Browser.mobile,
    tap: !L.Browser.mobile
})

iOS 10 Safari ๋ฐ Chrome์—์„œ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง Android์—์„œ ์™„์ „ํžˆ ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ # 4552์—์„œ ์ˆ˜์ •๋˜์–ด์•ผํ•˜๋Š” # 4051๊ณผ ๋งค์šฐ ํก์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ง€๊ธˆ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” Android ์žฅ์น˜์—์„œ ๋ฐ”์ด์˜ฌ๋ฆฐ์„ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋“œ๋ž˜๊ทธ ํ™œ์„ฑํ™”๋„ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ฏ€๋กœ iOS ํŠน์ • ๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

http://caniuse.com/#feat = css-touch-action์„ ์‚ดํŽด๋ณด๋ฉด iOS๋Š” touch-action ๋Œ€ํ•œ ๋ถ€๋ถ„์ ์ธ ์ง€์› ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ์ด ๋ฌธ์ œ์˜ ์›์ธ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ๋œ ๋ฐ”์ด์˜ฌ๋ฆฐ์—์„œ ๋งต์—๋Š” touch-action: pan-x pan-y; ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ iOS ์šฉ touch-action: auto; ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ @oberhamsi ๋‹น์‹ ์€ ํ™•์ธํ•  ์ˆ˜ touch-action: auto ํ˜„์žฌ ์ „ (https://github.com/Leaflet/Leaflet/blob/364bc7773568070aad596d58001018b0f0b6bb62/dist/leaflet.css#L54) ์ˆ˜์ • ๋‹น์‹ ์„์œ„ํ•œ ๋ฌธ์ œ๋ฅผ? ์ด ๊ฒฝ์šฐ PR์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. touch-action:auto ์— .leaflet-touch-zoom touch-action:auto ์„ (๋ฅผ) ์„ค์ •ํ•˜๋„๋ก ๋ฐ”์ด์˜ฌ๋ฆฐ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‚˜๋Š” ๋˜ํ•œ ์„ค์ • pointer-event:auto ์— .leaflet-tile-container ์—ฌ์ „ํžˆํ•˜์ง€๋งŒ ํšจ๊ณผ.

https://jsfiddle.net/geg8yLe3/6/

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ค‘ ํ•˜๋‚˜๊ฐ€ preventDefault๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@oberhamsi ํ—ˆ, ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

preventDefault , L.Draggable ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๊ณ ์ด ๊ฒฝ์šฐ ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก์„ ์ทจ์†Œํ•˜๋ฏ€๋กœ ๋“œ๋ž˜๊ทธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฆฌ์Šค๋„ˆ๊ฐ€ ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@oberhamsi ๋‹น์‹ ์ด ์ด๊ฒƒ์„ ํŒŒํ—ค์ณ ์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋””๋ฒ„๊น…์„ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@GeorgeColdham ์Šฌํ”„๊ฒŒ๋„, ์•„๋‹™๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด Android์—์„œ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ ํ•  iOS ์žฅ์น˜์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๋„ ์Šคํฌ๋กค์„ ๋ฐฉ์ง€ํ•˜๋Š” iOS์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” CSS ๊ทœ์น™ ๋˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์กฐ์‚ฌํ•ด์•ผํ•˜๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. IOS์—์„œ webview๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์›น ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์—†์ด๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํฌ๋กฌ๊ณผ ์‚ฌํŒŒ๋ฆฌ์—์„œ ํ…Œ์ŠคํŠธํ–ˆ๋‹ค. ๋‚ด ๊ธฐ๊ธฐ๋Š” iphone 4s์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๊ธฐ๋ณธ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ธŒ๋ผ์šฐ์ € "com.android.browser"๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ:
Mozilla/5.0 (Linux; Android 5.0.2; LG-D802/V30f Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/34.0.1847.118 Mobile Safari/537.36

Google Maps JS SDK๋Š” iOS / Android์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ํ•œ ํ„ฐ์น˜ ๋™์ž‘์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒํ•˜๋Š”์ง€ ์•„์‹ญ๋‹ˆ๊นŒ?

@perliedman ๋ฃจํŠธ ๋ฌธ์ œ๋Š” touchstart ํ•ธ๋“ค๋Ÿฌ์˜ preventDefault ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/Leaflet/Leaflet/blob/v1.0.3/src/map/handler/ Map.Tap.js # L32

์ œ๊ฑฐํ•˜๋ฉด (๋˜๋Š” ์˜ต์…˜์— tap = false ์ถ”๊ฐ€) iOS์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Android ๋ฒ„์ „ 55 ์ด์ „์˜ Chrome์—์„œ๋„ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค (๋ฒ„์ „ 55๋Š” ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ๋ฅผ ์ง€์›ํ•˜๊ณ  Leaflet์—์„œ ๋‹ค๋ฅธ ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Chrome). Android ๊ธฐ๊ธฐ์—์„œ chrome : // flags ๋กœ ์ด๋™ํ•˜์—ฌ ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ๋ฅผ Disabled ์„ค์ •ํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@herrernst ํ—ˆ, ์ข‹์€ ๋ถ„์„! ๊ฐ์‚ฌ!

์ด๊ฒƒ์„ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ํƒญ ํ•ธ๋“ค๋Ÿฌ์ž…๋‹ˆ๋‹ค. # 4051์—์„œ ์‚ฌ์šฉํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์‹ค์ œ๋กœ tap: false ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ dragging: false ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ tap: false ํ•˜์—ฌ ์›ํ•˜๋Š” ๋™์ž‘์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด # 5670์„ ์ œ์ถœ ํ–ˆ์œผ๋ฏ€๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํŠธ ๋œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋Ÿฌ๊ฐ€์—†๋Š” ํ•œ ์‹œ๋ฎฌ๋ ˆ์ดํŠธ ๋œ ์ด๋ฒคํŠธ์˜ ์†Œ์Šค์— ๋Œ€ํ•ด preventDefault ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@perliedman ์‘๋‹ต๊ณผ ํŒจ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด๋Š” Firefox 2์˜ ์ตœ์‹  ๋ฒ ํƒ€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ Android (7.0)์—์„œ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฝ”๋“œ๋Š”์ง€๋„๊ฐ€ ์•„๋‹Œ ํ•œ ์†๊ฐ€๋ฝ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กคํ•˜๋Š” ๋™์‹œ์— ๋‘ ์†๊ฐ€๋ฝ์œผ๋กœ์ง€๋„๋ฅผ ํ™•๋Œ€ / ์ถ•์†Œ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋งˆ์ปค๋ฅผ ํƒญํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ์œ ํšจํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด์ง€๋„๊ฐ€ ์Šคํฌ๋กค์ด ํ•„์š”ํ•œ ๋” ํฐ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€์ผ ๋•Œ ๋ชจ๋ฐ”์ผ์—์„œ ์‚ฌ์šฉ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

L.map('map', {
    dragging: !L.Browser.mobile,
    tap: !L.Browser.mobile
})

iOS 10 Safari ๋ฐ Chrome์—์„œ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง Android์—์„œ ์™„์ „ํžˆ ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ iOS 11.3.1, Safari ๋ฐ Chrome 66 ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์•ˆ๋“œ๋กœ์ด๋“œ ํฌ๋กฌ 66์—์„œ

@SimonEast Android์˜ ๋ชจ๋ฐ”์ผ FireFox์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ

์•„๋ฌด๋„ ์•„์ง ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๊นŒ?
dragging & tap ๋ฅผ false ๋กœ ์„ค์ •ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

dragging & tap ๋ฅผ false ๋กœ ์„ค์ •ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
๊ท€ํ•˜์˜ ๊ฒฝ์šฐ๋Š” ๋…ผ์˜ ๋œ ๊ฒƒ๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒ˜ํ”Œ ๋ฐ”์ด์˜ฌ๋ฆฐ์„ ์ œ๊ณตํ•ด์ฃผ์„ธ์š”.

์ด๊ฒƒ์„ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ํƒญ ํ•ธ๋“ค๋Ÿฌ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ # 7026์œผ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€ : https://jsfiddle.net/johnd0e/8kytb1dc/2/show

๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์€ iOS ํŠน์ • ๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” Android, Firefox 68.6์—์„œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜๋ฉฐ L.Map.Tap ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ๋ณด๊ณ  ๋œ๋Œ€๋กœ.

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