λͺ¨λ°μΌ λ° Android μμ€ν
WebView v55.02883.91μ Chrome v55.02883.91μμ νμΉ μ€μ΄ κΉ¨μ§
μ΄λ Chrome(λΈλΌμ°μ )μ μ¬μ©νλ Android λͺ¨λ°μΌ μ₯μΉμ Android μμ€ν
WebViewλ₯Ό μ¬μ©νλ Cordova μ±μ μ μ©λ©λλ€.
μ΄μ λ²μ μ Chromeμμ(v54κΉμ§ μλ²½νκ² μλνμ΅λλ€. μ¦, νλλμμ΅λλ€!
v55μμ λ°μνλ μΌμ νλ/μΆμκ° μλ ν¬λΏμ΄λ©° ν¨λλ μ΄λ―Έμ§λ νμΉ μκ°λ½ μ¬μ΄μμ λλλ‘ 'μ ν'νκ³ λ μκ°λ½ μ¬μ΄μμ μ΄λ―Έμ§κ° λ€μ§ν λ κΉλ°μ΄λ ν¨κ³Όλ₯Ό λ§λλλ€.
μ΄ λ¬Έμ λ₯Ό μ κ³ ν΄ μ£Όμ μ κ°μ¬ν©λλ€. ν μκ°μ λ΄ μ±μ΄ νλ/μΆμ μμ μ μ€μ§νκ³ μ΄μ λ₯Ό λͺ¨λ₯΄κ² μ΅λλ€.
λ΄ μ±λ κ³ μ₯λ¬μ΅λλ€. μλ‘ μ λ°μ΄νΈλ ν¬λ‘¬μμ μ΄μν λμ(λλκ·Έ μ΄λ²€νΈκ° μ°½μ μ€ν¬λ‘€νλ κ²μ²λΌ 보μ΄κ³ νμΉ μ΄λ²€νΈκ°... κΈ°κ΄΄ν¨). μ λ°μ΄νΈλμ§ μμ ν¬λ‘¬μ΄ μλ λ€λ₯Έ κΈ°κΈ°λ μ μμ μΌλ‘ μλν©λλ€. μ΄μ ―λ°€μ ν¬λ‘¬μ μ λ°μ΄νΈνλλ° κ·Έκ²λ κΉ¨μ‘μ΅λλ€.
μ΄ λ¬Έμ λ₯Ό μ΄μ΄ μ£Όμ
μ κ°μ¬ν©λλ€.
μ΄λ¬ν μ΄μ λ‘ λ΄ μ±μ΄ Chrome λ°μ€ν¬ν±μμλ μλμ λ©μΆ₯λλ€.
μ루μ
- μΆκ°
touch-action: none;
panzoom 컨ν
μ΄λμ CSSμ μΆκ°νκ³ λΈλΌμ°μ λ ν΄λΉ κ΅¬μ± μμμ λν΄ μ체 ν°μΉ μ΄λ²€νΈλ₯Ό μννμ§ μμ΅λλ€.
μλ‘μ΄ κΈ°λ₯μ λλ€: https://developers.google.com/web/updates/2016/10/pointer-events
μ루μ - μΆκ°
ν°μΉ μ‘μ : μμ;
panzoom 컨ν μ΄λμ CSSμ μΆκ°νκ³ λΈλΌμ°μ λ ν΄λΉ κ΅¬μ± μμμ λν΄ μ체 ν°μΉ μ΄λ²€νΈλ₯Ό μννμ§ μμ΅λλ€.
μλ‘μ΄ κΈ°λ₯μ λλ€: https://developers.google.com/web/updates/2016/10/pointer-events
μλ μν¨.
μ½λλ₯Ό λΉ λ₯΄κ² ν΄νΉνκ³ 1164νμ μ£Όμ μ²λ¦¬νμ΅λλ€.
this.panning = true;
νμΉ μ€μ λ€μ νμ©ν©λλ€(ν¨λμ μν₯μ μ£Όμ§ μμ). μ΄κΈ°νλ₯Ό μ μΈνκ³ this.panningμ΄ falseλ‘ μ€μ λλ μμΉλ₯Ό μ μ μμ΅λλ€... YMMV.
μ½λλ₯Ό λΉ λ₯΄κ² ν΄νΉνκ³ 1164νμ μ£Όμ μ²λ¦¬νμ΅λλ€.
this.panning = μ¬μ€;
νμΉ μ€μ λ€μ νμ©ν©λλ€(ν¨λμ μν₯μ μ£Όμ§ μμ). μ΄κΈ°νλ₯Ό μ μΈνκ³ this.panningμ΄ falseλ‘ μ€μ λλ μμΉλ₯Ό μ μ μμ΅λλ€... YMMV.
κ°μ¬ν©λλ€.
μ½λλ₯Ό λΉ λ₯΄κ² ν΄νΉνκ³ 1164νμ μ£Όμ μ²λ¦¬νμ΅λλ€.
this.panning = μ¬μ€;
ν κ±°κΈ°.....
μ΄ 'ν΄νΉ'μ΄ νΈλ¦μ μνν©λλ€! μ΄μ Android 55μμ μλν©λλ€.
iOS 10.2, Android 53μμ λ€μ ν μ€νΈ - μ¬μ ν μ΄μ κ³Ό κ°μ΄ μλν©λλ€!
vrtual κ°μ¬ν©λλ€!
μ½λλ₯Ό λΉ λ₯΄κ² ν΄νΉνκ³ 1164νμ μ£Όμ μ²λ¦¬νμ΅λλ€.
this.panning = μ¬μ€;
νμΉ μ€μ λ€μ νμ©ν©λλ€(ν¨λμ μν₯μ μ£Όμ§ μμ). this.panningμ΄ μ΄κΈ°νλ₯Ό μ μΈνκ³ λ >falseλ‘ μ€μ λλ μμΉλ₯Ό μ μ μμ΅λλ€... YMMV.
λλ₯Ό μν΄ μ μλν©λλ€ ... κ°μ¬ν©λλ€.
λλ§μ νλ/μΆμ κΈ°λ₯μ νκ³ μμ§λ§ μ§κΈμ μ μ₯μ΄ λ©λλ€... κ°μ¬ν©λλ€.
Android google webview 2016 12μ 14μΌ μ λ°μ΄νΈμμ ν μ€νΈ...
μ½λλ₯Ό λΉ λ₯΄κ² ν΄νΉνκ³ 1164νμ μ£Όμ μ²λ¦¬νμ΅λλ€.
this.panning = μ¬μ€;
μ΄κ²μ λΆλΆμ μΌλ‘ μλν©λλ€. κ°μ¬ ν΄μ!
ν΄λΉ μ€μ μ£Όμ μ²λ¦¬νλ λ° λΆλΆμ μΌλ‘ μ±κ³΅νμ΅λλ€. μ΄μ μνΈ μμ© μμΉ λμ μΌμͺ½ μλ¨μμ νλ/μΆμλμ§λ§ ν° κ°μ μ¬νμ λλ€.
μ΅μ ν¬λ‘¬μ΄ μ΄λ²€νΈμμ pageX λ° pageY μ°Έμ‘°κ° μλ μμΉλ₯Ό λ³κ²½ν κ²μΌλ‘ 보μ
λλ€.
ν¬λ‘¬μ΄ λ³κ²½λ λκΉμ§ λͺ¨λ λΈλΌμ°μ μλ event.pageXκ° μμμ΅λλ€....
μ΄μ event.originalEvent.pageXμ μμ΅λλ€...
Panzoom μ½λλ₯Ό μ΄ν΄λ³΄λ μ€μ
λλ€. λ§μ°μ€ μ΄λ²€νΈλ₯Ό μ¬μ©νμ¬ ν¬λ‘¬μμ μλνκ² νλ €λ©΄ λ€μ νμ λ³κ²½νμμμ€.
λΌμΈ 1191:1192
λ³κ²½:
startPageX = event.pageX;
startPageY = event.pageY;
μκ²:
if (typeof event.pageX === 'undefined'){
startPageX = event.originalEvent.pageX;
startPageY = event.originalEvent.pageY;
}else{
startPageX = event.pageX;
startPageY = event.pageY;
}
1232νμμ λ€μμ μΆκ°ν©λλ€.
if (typeof coords.pageX === 'undefined'){
coords['pageX'] = coords.originalEvent.pageX;
coords['pageY'] = coords.originalEvent.pageY;
}
ν°μΉ μ΄λ²€νΈλ λ΄κ° μ§ννλ©΄μ λ λ§μ΄ μ¬ κ²μ λλ€.
"this.panning = true;" μ£Όμ μ²λ¦¬ μμ νμ§λ§ λ μ΄μ κ·Έλ κ² λ§€λλ½μ§ μμΌλ©° ꡬν μ₯μΉμμλ νλ/μΆμκ° μλΉν μ§μ°λ©λλ€. λλ κ·Έκ²μ μ£Όμ μ²λ¦¬νλ κ²μ΄ ν¨μ¬ λ λ§μ CPU μ λ ₯μ μ¬μ©νλ―λ‘ μ€λλ μ₯μΉκ° λ°λΌκ° μ μλ€κ³ κ°μ ν©λλ€.
μ λ²μ (3.2.2)μΌλ‘ μ λ°μ΄νΈνκ³ μ£Όμ΄μ§ μ€μ μ£Όμ μ²λ¦¬ν΄ λ³΄μ ¨μ΅λκΉ?
v3.2.2 λ° Chrome 56μμ μ΄ λ²κ·Έκ° μ¬μ ν μ‘΄μ¬νκ³ μμ μ¬νμ΄ μλν¨μ νμΈν μ μμ΅λλ€.
100% νμ ν μλ μμ§λ§ λ¬Έμ λ λ€μκ³Ό κ°μ΅λλ€.
κ·Έ λ³μ( this.panning
)λ _startMove
ν¨μμ λ μ΄μμ μΈμ€ν΄μ€κ° λμμ μ€νλλ κ²μ λ°©μ§νκΈ° μν κ² κ°μ΅λλ€. endEvent
μ΄λ²€νΈ(1249ν)μμ false
λ‘ μ¬μ€μ λμ΄μΌ νμ§λ§ μ΄κ²μ΄ μ λλ‘ μλνμ§ μλ κ² κ°μ΅λλ€(μ΄μ λ₯Ό μμλΌ λ§νΌ μΆ©λΆν κΉμ΄ νꡬνμ§ μμμ΅λλ€). μ΄κ²μ΄ ThorConzalesκ° μμ μ¬νμΌλ‘ μΈν΄ μ±λ₯μ΄ μ νλ¨μ λ°κ²¬ν μ΄μ μΌ μ μμ΅λλ€.
λ체 μμ : _startMove
ν¨μ λμ this.panning = false;
λ₯Ό μΆκ°νλ©΄(1255ν μ΄ν) μ΄ λ¬Έμ λ ν΄κ²°λ©λλ€. μ΄μ μ₯μΉμμ ν
μ€νΈνμ§ μμμΌλ―λ‘ μ΄κ²μ΄ μ±λ₯ μμ€μ λμμ΄λλμ§ νμΈν μλ μμ§λ§ λ€λ₯Έ μ¬λμ΄ ν μ μλ€λ©΄ κ°μ¬νκ² μ΅λλ€.
κ°μ¬ν©λλ€ @JamesCatt λ λΉμ μ λμμ μλν κ²μ λλ€.
@ν°λ―Έμ !?
@JamesCatt λ체 μμ μ΄ μλνμ§ μμκ³ νλ/μΆμκ° λ€μ μ€λ¨λμμ΅λλ€(μ§μ ν μ€νΈν μ₯μΉκ° μκΈ° λλ¬Έμ μ¬μ©μκ° λ³΄κ³ ν¨).
μ£Όμ ν 1164(this.panning = true)κ° μλνμ§ μμ΅λλ€. λλ 1143νμμ moveEvent = 'pointermove' tomoveEvent = 'touchmove'λ‘ λ³κ²½νλ μμμλ₯Ό μΌμ΅λλ€. κ·Έλ¬λ©΄ μλνμ§λ§ λ€λ₯Έ λ¬Έμ λ₯Ό μΌμΌν¬μ§ νμ ν μ μμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ ν΄νΉμ μ°Ύμμ΅λλ€.
μ΄κΈ°ν μ options.which
λ₯Ό -1
λ‘ μ€μ ν΄μΌ ν©λλ€.
$("a.panzoom-elements").panzoom({
which: -1,
});
__κ²½κ³ __
μ΄ ν΄νΉμ ν°μΉ μ₯μΉμμλ§ μλν©λλ€. μλ§λ μ΄κ²μ λ§μ°μ€μμ μλνμ§ μμ κ²μ
λλ€.
@JamesCatt μ λμμ΄ μ μκ² ν¨κ³Όκ° μμμ΅λλ€. @hshiozawa μ ν΄νΉμ μ μ΄λ Pixelμμλ Android 7.1.2λ₯Ό μ€νν©λλ€.
κ°μ₯ μ μ©ν λκΈ
μ½λλ₯Ό λΉ λ₯΄κ² ν΄νΉνκ³ 1164νμ μ£Όμ μ²λ¦¬νμ΅λλ€.
this.panning = true;
νμΉ μ€μ λ€μ νμ©ν©λλ€(ν¨λμ μν₯μ μ£Όμ§ μμ). μ΄κΈ°νλ₯Ό μ μΈνκ³ this.panningμ΄ falseλ‘ μ€μ λλ μμΉλ₯Ό μ μ μμ΅λλ€... YMMV.