<p>Leaflet 1.7.1์€ Safari์˜ Leaflet ์ปจํŠธ๋กค์— ์˜ํ•ด 2 ๊ฐœ์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.</p>

์— ๋งŒ๋“  2020๋…„ 09์›” 05์ผ  ยท  39์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Leaflet/Leaflet

์žฌํ˜„ ๋‹จ๊ณ„
๋™์ž‘์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„ :

  • ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์ฝ˜์†”์— ์ด๋ฒคํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” ๋ฒ„ํŠผ์ด์žˆ๋Š” ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ๋งต์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Mac์—์„œ Safari๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํŠธ๋กค์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.
  • ์ฝ˜์†”์—์„œ ๋‘ ๊ฐœ์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” isTrusted:true ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” isTrusted:false ์†์„ฑ์ž…๋‹ˆ๋‹ค.

( '๊ฐ•์ œ ํ„ฐ์น˜'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž™ ํŒจ๋“œ์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ๋ฐœ์ƒํ•˜์ง€๋งŒ Safari ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํŒ์—…๋„ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.)

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

isTrusted:true ์†์„ฑ๊ณผ ํ•จ๊ป˜ ํ•˜๋‚˜์˜ ํด๋ฆญ ์ด๋ฒคํŠธ ๋งŒ ์ƒ์„ฑ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Leaflet์ด isTrusted:false ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ˜„์žฌ ํ–‰๋™

๋ฒ„์ „ 1.6์—์„œ๋Š” ์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์ด ๊ด€์ฐฐ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.7.1์—์„œ Chrome์€ ์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์„ ๋‚˜ํƒ€๋‚ด์ง€ ๋งŒ Safari๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‘ ์ด๋ฒคํŠธ์˜ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

MouseEvent 1 :

_simulated: true
composed: false
isTrusted: false
layerX: 15
layerY: 28
offsetX: 15
offsetY: 28
pageX: 410
pageY: 46
screenX: 1390
screenY: 189
timeStamp: 499337
webkitForce: 0
x: 410
y: 38

MouseEvent 2 :

composed: true
isTrusted: true
layerX: 15
layerY: 20
offsetX: 15
offsetY: 20
pageX: 410
pageY: 38
screenX: 1390
screenY: 189
timeStamp: 538265
webkitForce: 1
x: 410
y: 38

_simulated , composed , isTrusted ๋ฐ ์•„๋งˆ๋„ webkitForce ๊ฐ€ ์ฃผ์š” ์ฐจ์ด์  ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž„ ์Šคํƒฌํ”„์™€ Y ์น˜์ˆ˜๊ฐ€ ๋‘ ๊ฐ€์ง€ ์ด๋ฒคํŠธ.

ํ™˜๊ฒฝ

  • ์ „๋‹จ์ง€ ๋ฒ„์ „ : 1.7.1
  • ๋ธŒ๋ผ์šฐ์ € (๋ฒ„์ „ ํฌํ•จ) : Safari 13.1.2
  • OS / ํ”Œ๋žซํผ (๋ฒ„์ „ ํฌํ•จ) : OS X 10.13.6 ๋ฐ 10.15.6

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ

OpenStreetMap์ด ์ตœ์‹  ๋ฒ„์ „์˜ Leaflet์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋œ ํ›„ ์ฒซ ๋ฒˆ์งธ ์ด๋ฒคํŠธ๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€๋„ ๋„๊ตฌ ์ค‘ ์ผ๋ถ€๊ฐ€ ๋„๊ตฌ๋ฅผ ์ผœ๊ณ  ๋‘ ๋ฒˆ์งธ๋กœ ๋„๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. https://github.com/openstreetmap/openstreetmap-website/issues/2811์— ๊ฒŒ์‹œ ๋œ ๊ด€๋ จ ๋ฌธ์ œ

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

https://codepen.io/dankarran/pen/JjXMXzd๋ฅผ ์ฐธ์กฐ

bug compatibility

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

๋‚˜๋Š” ํŒŒ์ด์–ด ํญ์Šค (๋ฐ ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ) ์—์„œ๋„์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•ˆ์ •์ ์œผ๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์ง€๋งŒ ํƒญ ์˜ต์…˜์—์„œ ๋‚˜์˜จ ํžŒํŠธ๋Š” ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ์—์„œ๋„ ํŒ์—…์„ ์—ฌ๋Š” ๋ฐ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํƒญ์„ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์†”๋ฃจ์…˜์œผ๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

var map = L.map('map', { "tap": false });

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

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

๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด :์ด ์˜ˆ์ œ๋Š”

    L.DomEvent.on(container, "click", function(e) {

Leaflet์ด isTrusted:false ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

addOne() in DomEvent.js , https://github.com/Leaflet/Leaflet/blob/4f32a5e83525a3a42980c974e48712b058510eb5/src/dom/DomEvent.js#L109 ์ฃผ๋ณ€์—์„œ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

if-then-else ์ฒด์ธ์— ์ƒˆ ๋ถ„๊ธฐ๊ฐ€ ์žˆ์œผ๋ฉด ์•„๋งˆ๋„

} else if (Browser.safari && !Browser.mobile && type === 'click') {
  handler = function (ev) {
    if (ev.isTrusted) { originalHandler(ev); }
  }
  obj.addEventListener('click', handler, false);
} // etc

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” (ํ˜„์žฌ) Apple ํ•˜๋“œ์›จ์–ด๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์ด์ „ ๋ฒ„์ „์˜ ๋ฐ์Šคํฌํ†ฑ Safari์— ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋œ ์ด๋ฒคํŠธ๋Š” https://github.com/Leaflet/Leaflet/blob/4f32a5e83525a3a42980c974e48712b058510eb5/src/map/handler/Map.Tap.js#L100 ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ https://github.com/Leaflet/Leaflet/blob/4f32a5e83525a3a42980c974e48712b058510eb5/src/map/handler/Map.Tap.js#L87 ์—์„œ ์กฐ๊ฑด์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๊ฒƒ์œผ๋กœ

if (this._fireClick && e && e.changedTouches && !(Browser.safari && !Browser.mobile)) { 

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” (ํ˜„์žฌ) Apple ํ•˜๋“œ์›จ์–ด๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์ด์ „ ๋ฒ„์ „์˜ ๋ฐ์Šคํฌํ†ฑ Safari ๋˜๋Š” ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค (๋ฒ„๊ทธ๊ฐ€ firefox ๋ชจ๋ฐ”์ผ์—์„œ ์žฌํ˜„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?).

์ด ๋ฒ„๊ทธ๋Š”

https://github.com/Leaflet/Leaflet/pull/7010/files#diff -c2e3d5ef35bf1c4a7c6b549ddf734725R134

@ johnd0e , ๋‹น์‹ ์€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? iOS ๊ณ„์ •์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ–ˆ์ง€๋งŒ ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ๋ฐ์Šคํฌํ†ฑ macOS์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๊นŒ?

@IvanSanchez๋ฅผ ์กฐ์‚ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Mac ๋˜๋Š” iOS์˜ Safari์—์„œ ์ œ์•ˆ ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ํ•˜์ž๋ฉด iOS์˜ Safari์— ๊ด€๋ จ ๋ฌธ์ œ ๊ฐ€ ์žˆ์ง€๋งŒ ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@ johnd0e , ๋‹น์‹ ์€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? iOS ๊ณ„์ •์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ–ˆ์ง€๋งŒ ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ๋ฐ์Šคํฌํ†ฑ macOS์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๊นŒ?

์ด๋Š” ํ™•์‹คํžˆ iOS ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/Leaflet/Leaflet/pull/7010 ํ† ๋ก ์„ ์ฐธ์กฐ
๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋„ˆ๋ฌด ๊ตฌ์ฒด์ ์ด์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์˜๋„์ ์œผ๋กœ safari ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๋น ๋ฅธ ์ˆ˜์ • :

  • Browser.ios ์†์„ฑ ์†Œ๊ฐœ
  • ๋˜๋Š” Browser.safari && Browser.mobile

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด์ผ ์šฐ๋ฆฌ๊ฐ€ ํ„ฐ์น˜ ์Šคํฌ ๋ Œ์ด์žˆ๋Š” ๋งฅ๋ถ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”? ๊ทธ๊ฒƒ์€ ๋‹ค์‹œ ๋ชจ๋“  ๊ฒƒ์„ ๊นจ๋œจ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ €๋Š” ๋น ๋ฅธ ์ˆ˜์ • ( Browser.safari && Browser.mobile )์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ ์šฉ ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•œ ๋‹ค์Œ ์—ฌ๊ธฐ์—์„œ ๊ถ๊ทน์  ์ธ ์†”๋ฃจ์…˜์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค. # 6980

* or use `Browser.safari && Browser.mobile`

๋‚˜๋Š”์ด ์ ‘๊ทผ๋ฒ•์„ ์ข‹์•„ํ•œ๋‹ค ( "๋น ๋ฅด๊ณ  ๋”๋Ÿฌ์šด"์ˆ˜์ •).

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด์ผ ์šฐ๋ฆฌ๊ฐ€ ํ„ฐ์น˜ ์Šคํฌ ๋ Œ์ด์žˆ๋Š” ๋งฅ๋ถ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”? ๊ทธ๊ฒƒ์€ ๋‹ค์‹œ ๋ชจ๋“  ๊ฒƒ์„ ๊นจ๋œจ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด ๋Œ€๋‹ต์€ ๊ฒฐ๊ตญ # 7200์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค :-)

๋‚ด ๋Œ€๋‹ต์€ ๊ฒฐ๊ตญ # 7200์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค :-)

์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค)
๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“  ํ˜„์žฌ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋จธ๋ฌผ ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ณ ์นœ ๋‹ค์Œ ๋” ๋ฉ€๋ฆฌ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค (# 7200 ๋˜๋Š” ๊ธฐํƒ€).

์ด๊ฒƒ์ด ๋™์ผํ•œ ๋ฌธ์ œ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ (๊ธฐ์กด ํ‹ฐ์ผ“ ๋์— ํƒœ๊ทธ ์ง€์ •์„ ์šฉ์„œํ•˜์‹ญ์‹œ์˜ค) ๋ฐ์Šคํฌํ†ฑ Safari์˜ 1.7.1์—์„œ๋„ Shift- ๋“œ๋ž˜๊ทธํ•˜์—ฌ ํ™•๋Œ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. # 7260์œผ๋กœ๋„์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค.

@systemed https://s3.amazonaws.com/leafletjs-cdn/content/leaflet/master/leaflet-src.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ shift-dragging์„ ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (์˜ˆ : https://plnkr.co/edit/v4GzrCYSxpIO1aOo) ์ด๋ฏธ # 7260์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜๋Š” master ์˜ ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค.

Spot on-์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘

๋‚˜ํƒ€๋‚œ ๋ฐ”์™€ ๊ฐ™์ด ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐ์Šคํฌํ†ฑ Safari๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ ˆ๊ฑฐ์‹œ Edge์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
AFAIK atm tap ํ•ธ๋“ค๋Ÿฌ๋Š” iOS ์—๋งŒ ํ•„์š”

๋”ฐ๋ผ์„œ ... map.options.tap ๊ธฐ๋ณธ๊ฐ’์„ false ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ์—์„œ ๋นŒ๋“œ ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฒคํŠธ๋ฅผ ํ‘œ์‹œํ•˜์—ฌ ๋ชจ๋ฐ”์ผ์—์„œ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ ํŽœ ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์Šคํฌํ†ฑ Safari์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ์•ˆํƒ€๊น๊ฒŒ๋„ ๋ชจ๋ฐ”์ผ Safari๊ฐ€ ์—ฌ์ „ํžˆ ๋‘ ๋ฒˆ์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

https://s3.amazonaws.com/leafletjs-cdn/content/leaflet/master/leaflet-src.js ์˜ JS๊ฐ€ ์ตœ์‹  ๋ฒ„์ „ ์ธ ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ iOS Safari์—์„œ ๋‘ ๊ฐœ์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ฒ€์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค๋ฅธ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

touchstart (๋ฐ pointerdown )์—์„œ ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ click ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/Leaflet/Leaflet/blob/dda26ba96d7dc79213818d1bcc0565b6ac3c69c4/src/map/handler/Map.Tap.js#L43
๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

@ johnd0e ์ข€ ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋œ ์š”์†Œ ์œ ํ˜• (์˜ˆ : ์ž์ฒด ํด๋ฆญ ํ•ธ๋“ค๋Ÿฌ๊ฐ€์žˆ๋Š” a ๋˜๋Š” button ์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ div )์— ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

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

type: click
isTrusted: false
composed: false
_simulated: true
webkitForce: 0
type: click
isTrusted: true
composed: true
webkitForce: 1

๋˜ํ•œ a ๋ฐ div ์š”์†Œ๋Š” ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— e.preventDefault() ๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ johnd0e๋ฅผ ์‹œ๋„ํ•ด๋ณด๊ณ  ์‹ถ์€ ๋‹ค๋ฅธ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

Safari๊ฐ€ ์ž์ฒด ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ์ค„์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/Leaflet/Leaflet/blob/4f32a5e83525a3a42980c974e48712b058510eb5/src/map/handler/Map.Tap.js#L98 -L101

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‚˜๋Š” ๋ฐฉ๊ธˆ ํ™•์ธํ–ˆ๊ณ  iOS์˜ Chrome (v85)์€ ๋‘ ๊ฐ€์ง€ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚ด๊ฐ€ ์ฐพ์€ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
1) mousedown / pointerdown ๋Š” click ์ทจ์†Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. touchstart ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2)ํ•˜์ง€๋งŒ ํ˜„์žฌ Leaflet์€ ๋‹ค์†Œ ์ด์ƒํ•œ ๋™์ž‘์„ํ•ฉ๋‹ˆ๋‹ค (# 7077) : ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์„ ๋•Œ-ํ„ฐ์น˜ ์ด๋ฒคํŠธ๋ฅผ ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ด์ œ ์ถ”๊ฐ€ ํด๋ฆญ์„ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ œ๋Œ€๋กœ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด # 7029, # 7026 ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฑ„ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋ฟก ๋นต๋€จ

์ž„์‹œ ๋ฐฉํŽธ์œผ๋กœ ๋น ๋ฅธ ์ˆ˜์ •์ด ๋„์›€์ด๋œ๋‹ค๋ฉด (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ), ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋œ ์ด๋ฒคํŠธ๊ฐ€ iOS์˜ Chrome๊ณผ Safari ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ฃผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

https://github.com/Leaflet/Leaflet/blob/4f32a5e83525a3a42980c974e48712b058510eb5/src/map/handler/Map.Tap.js#L100

@systemed https://s3.amazonaws.com/leafletjs-cdn/content/leaflet/master/leaflet-src.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ shift-dragging์„ ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (์˜ˆ : https://plnkr.co/edit/v4GzrCYSxpIO1aOo) ์ด๋ฏธ # 7260์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜๋Š” master ์˜ ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค.

https://s3.amazonaws.com/leafletjs-cdn/content/leaflet/master/leaflet-src.js
^์ด ๋ฒ„์ „์€ ๋ฐ์Šคํฌํ†ฑ Safari 14.0์—์„œ 1.7.1 ๋ณด๋‹ค ํ›จ์”ฌ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํƒญํ•˜๊ฑฐ๋‚˜ ํด๋ฆญํ•˜๋ฉด ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค ๐Ÿ‘

์ž„์‹œ ๋ฐฉํŽธ์œผ๋กœ ๋น ๋ฅธ ์ˆ˜์ •์ด ๋„์›€์ด๋œ๋‹ค๋ฉด (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ), ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋œ ์ด๋ฒคํŠธ๊ฐ€ iOS์˜ Chrome๊ณผ Safari ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ฃผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

https://github.com/Leaflet/Leaflet/blob/4f32a5e83525a3a42980c974e48712b058510eb5/src/map/handler/Map.Tap.js#L100

๋ชจ๋“  ๊ธฐ๊ธฐ (๋ฐ์Šคํฌํ†ฑ firefox, chrome, ios safari, chrome ..)์—์„œ 2 ๋ฒˆ ํด๋ฆญ ์ด๋ฒคํŠธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋‚˜์—๊ฒŒ ๋ฐœ์ƒํ•˜๊ณ  Safari์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Chrome ๋ฐ Firefox๋Š” MacOS 10.15.6 ๋ฐ Safari 14.0 ์ดํ›„์—๋งŒ ์ด๋ฒคํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ผ์‹œ์ ์œผ๋กœ Leaflet์„ 1.6์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ–ˆ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ • ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋ˆ„๊ตฌ๋“ ์ง€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด ๋ฒ„๊ทธ๋Š” ๋งค์šฐ ์˜ค๋ž˜๋œ tap ํ•ธ๋“ค๋Ÿฌ (# 6980)๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ผ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค : https://github.com/Leaflet/Leaflet/issues/7255#issuecomment -691109158
ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ

์ผ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค. # 7255 (์ฝ”๋ฉ˜ํŠธ)

@ johnd0e ์ €๋Š” ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ์‹œ๊ฐ„๋„์—†๊ณ  iOS ํ•˜๋“œ์›จ์–ด๋„ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋ฌดํŠผ ๋„ˆ๋ฅผ ๋ฏฟ๊ณ ์žˆ์–ด # 7026 (# 7029๋ณด๋‹ค ๊น”๋”ํ•œ ๋Š๋‚Œ)

๋ˆ„๊ตฌ๋“ ์ง€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๋ฉ‹์ง„ ๊ฒŒ ๋ญ”์ง€ ์•Œ์•„, @ PeterPan73? ๋‹น์‹ ์ด ๊ณ„์†ํ•ด์„œ # 7026๊ณผ # 7029์—์„œ ๋ช‡ ๊ฐœ์˜ ๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ , ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋” ๋งŽ์€ ์••๋ ฅ์„ ๊ฐ€ํ•˜๋Š” ๋Œ€์‹  ์ถ”๊ฐ€ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ €๋Š” ๊ทธ๋ฆฐ ๋ผ์ดํŒ… # 7026์ž…๋‹ˆ๋‹ค (# 7029๋ณด๋‹ค ๊น”๋”ํ•œ ๋Š๋‚Œ)

๋ถˆํ–‰ํžˆ๋„ # 7026์˜ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์—์„œ ๋‹ค๋ฅธ ๋ฒ„๊ทธ ๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์ถ”์•…ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค (# 7029 ๋ฐ # 7059๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ).

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ # 7029 ๋ฐ ๊ธฐํƒ€ ์—ฐ๊ฒฐ๋œ PR์„ ๋‹ค๋ฃจ์–ด์•ผ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ https://github.com/Leaflet/Leaflet/projects/1์—์„œ ๋ชจ๋‘ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

iOS ๊ธฐ๊ธฐ๊ฐ€ ํ™œ์„ฑํ™” ๋œ Chrome 85 DevTools๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ macOS 10.15.7์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ์œ„ํ•œ ๊ฐ€์žฅ ๋น ๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ lodash debounce ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ €๋Š”์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ์— ๋ถ€๋”ช ํ˜”์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์— ์ œ ๊ฒฝํ—˜์„ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ Macbook ํŠธ๋ž™ ํŒจ๋“œ์—์„œ ๋ฐœ์ƒํ•˜๋ฉฐ์ง€๋„์— ์‚ฌ์šฉ์ž ์ •์˜ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
์ง€๋„์— ์ดˆ์ ์ด ๋งž์ถฐ์ง€๋ฉด ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๋”๋ผ๋„ Leaflet์€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผํ•˜๊ณ  button ๊ฐ’์ด 0 ์ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋œ _click_ ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด์— ๋Œ€ํ•œ ๋‚ด ๋‹ซ๊ธฐ ํ•ธ๋“ค๋Ÿฌ.

๋ฒ„๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด https://leafletjs.com์œผ๋กœ ์ด๋™ ํ•œ ๋‹ค์Œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

  1. ์ง€๋„๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค (์ง€๋„์— ์ดˆ์ ์ด ์žˆ์Œ).
  2. "๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญ"
  3. ์ง€๋„๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค
  4. "๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญ"

์ปค์„œ๊ฐ€ ๋“œ๋ž˜๊ทธ ๋ชจ๋“œ์— ์žˆ๊ณ ์ง€๋„๋ฅผ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๋ฉด (ํ•œ ๋ฒˆ ๋‹ซ๊ธฐ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด์™€ ํ•œ ๋ฒˆ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐ ํ•จ)์ง€๋„๊ฐ€ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฌธ์ œ์™€๋„ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ : # 6865).

์ด ๋‘ ๋ฒˆ ํด๋ฆญ ์ด๋ฒคํŠธ (ํ•˜๋‚˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ํ•˜๋‚˜๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Œ)๋Š” ๋ฐ์Šคํฌํ†ฑ Linux์—์„œ Chrome ๋ฐ Firefox์—์„œ ๋ชจ๋ฐ”์ผ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•  ๋•Œ 1.7.1์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (1.6์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ). ํ•˜์ง€๋งŒ ์‹ค์ œ Android ํ„ฐ์น˜ ์žฅ์น˜์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (Chrome / Firefox ํ…Œ์ŠคํŠธ ๋จ). ์ง€๊ธˆ์€ ํด๋ฆญ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ž์ฒด ๋ฐ”์šด์Šค ํƒ€์ด๋จธ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ์—์„œ 150ms ์ด๋‚ด์— ๋ฐœ์ƒํ•˜๋Š” ํด๋ฆญ์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ํด๋ฆญ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ž์ฒด ๋ฐ”์šด์Šค ํƒ€์ด๋จธ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ์—์„œ 150ms ์ด๋‚ด์— ๋ฐœ์ƒํ•˜๋Š” ํด๋ฆญ์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@atorger ๋‹˜ , ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ ํ•˜์…จ๋‚˜์š”? onClick ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ event.originalEvent.preventDefault(); ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์˜ˆ๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๐Ÿ™ ๐Ÿ˜„

์ง€๊ธˆ์€ ํด๋ฆญ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ž์ฒด ๋ฐ”์šด์Šค ํƒ€์ด๋จธ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ์—์„œ 150ms ์ด๋‚ด์— ๋ฐœ์ƒํ•˜๋Š” ํด๋ฆญ์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@atorger ๋‹˜ , ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ ํ•˜์…จ๋‚˜์š”? onClick ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ event.originalEvent.preventDefault(); ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์˜ˆ๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋„ ๋ฏธ์†Œ

ํ™•์‹คํ•œ:

var lastClick = Date.now();
e.addEventListener('click', function(event) {
    var now = Date.now();
    var diff = now - lastClick;
    lastClick = now;
    event.stopPropagation();
    if (diff > 150) {
        // handle the click event
    }
});

์ด ๋ฌธ์ œ๋กœ ์ธํ•ด bindPopup ๊ฐ€ ๋งˆ์ปค์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŒŒ์ด์–ด ํญ์Šค (๋ฐ ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ) ์—์„œ๋„์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•ˆ์ •์ ์œผ๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์ง€๋งŒ ํƒญ ์˜ต์…˜์—์„œ ๋‚˜์˜จ ํžŒํŠธ๋Š” ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ์—์„œ๋„ ํŒ์—…์„ ์—ฌ๋Š” ๋ฐ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํƒญ์„ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์†”๋ฃจ์…˜์œผ๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

var map = L.map('map', { "tap": false });

๋‚˜๋Š” ํŒŒ์ด์–ด ํญ์Šค (๋ฐ ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ) ์—์„œ๋„์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•ˆ์ •์ ์œผ๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์ง€๋งŒ ํƒญ ์˜ต์…˜์—์„œ ๋‚˜์˜จ ํžŒํŠธ๋Š” ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ์—์„œ๋„ ํŒ์—…์„ ์—ฌ๋Š” ๋ฐ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํƒญ์„ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์†”๋ฃจ์…˜์œผ๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

var map = L.map('map', { "tap": false });

์ด ์†”๋ฃจ์…˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค, @eikes! ๋‚˜๋Š” ์˜ค๋Š˜์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๊ณ  ๊ทธ๊ฒƒ์ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ์—์„œ๋„ ํŒ์—…์„ ์—ฌ๋Š” ๋ฐ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ์—์„œ tap ํ•ธ๋“ค๋Ÿฌ๋Š” ํƒญ ํ™€๋“œ์—์„œ contextmenu ์ด๋ฒคํŠธ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๋Š” ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ์ง€๋„๋ฅผ ํด๋ฆญํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋‘ ๋ฒˆ์˜ ํ„ฐ์น˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

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