рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдпрд╛ рдЯреИрдмрд▓реЗрдЯ рдЬреИрд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рд╕рдВрд╡рд░реНрдзрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рдЯрдЪ рд╕реНрдХреНрд░реАрди рд╣реЛрддреА рд╣реИред
рд╣рд░ рджрд┐рди, рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЯрдЪрд╕реНрдХреНрд░реАрди рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдЖрд░реНрдХреЗрдб рдпрд╛ рдлрд╛рдЗрдЯрд┐рдВрдЧ рдЧреЗрдо рдореЗрдВ рдХреБрдЫ рдмрдЯрди рджрдмрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдпрд╣ рдлреАрдЪрд░ рдорд▓реНрдЯреА-рдЯрдЪ рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Apple рдиреЗ iOS 2.0 рдореЗрдВ рдЕрдкрдиреЗ
рдЯрдЪ рдЗрд╡реЗрдВрдЯ API рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдЬрд▓реНрдж рд╣реА Android рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЛ рднреА рдпрд╣ рдЕрд╡рд╕рд░ рдорд┐рд▓ рдЧрдпрд╛, рдФрд░ рдЯрдЪ рдЗрд╡реЗрдВрдЯреНрд╕ API рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрди рдЧрдпрд╛ред W3C рд╡рд░реНрдХрд┐рдВрдЧ рдЧреНрд░реБрдк рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ
рдЯрдЪ рдЗрд╡реЗрдВрдЯ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдПрдкреАрдЖрдИ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рд╣рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдЦ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг рдФрд░ рддрдХрдиреАрдХреЗрдВ рд╣реИрдВ рдЬреЛ рдЯрдЪ рдИрд╡реЗрдВрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд▓реЗрдЦрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред
рдШрдЯрдирд╛рдУрдВ
рдпреЗ рддреАрди рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:
рдЯрдЪрд╕реНрдЯрд╛рд░реНрдЯ : DOM рддрддреНрд╡ (mousedown рдХреЗ рдЕрдиреБрд░реВрдк) рдХреЛ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВред
рдЯрдЪрдореЛрд╡ : DOM рддрддреНрд╡ (mousemove рдХреЗ рдЕрдиреБрд░реВрдк) рдХреЗ рд╕рд╛рде рдЙрдВрдЧрд▓реА рдХреА рдЧрддрд┐ред
рдЯрдЪреЗрдВрдб : рдЙрдВрдЧрд▓реА рдХреЛ DOM рдПрд▓рд┐рдореЗрдВрдЯ (рдПрдирд╛рд▓реЙрдЧ рдорд╛рдЙрд╕рдЕрдк) рдХреЗ рд╕рд╛рде рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рдИрд╡реЗрдВрдЯ рдореЗрдВ рд╕реНрдкрд░реНрд╢ рдмрд┐рдВрджреБрдУрдВ (рдЙрдВрдЧрд▓реА рд╕реВрдЪрд┐рдпреЛрдВ) рдХреА рддреАрди рд╕реВрдЪрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдЯрдЪ : рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рднреА рд╕реНрдкрд░реНрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреАред
targetTouches : рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдкрд░ рдмрд┐рдВрджреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреАред
рдмрджрд▓реА рдЧрдИ рдЪреАрдЬреЗрдВ : рд╡рд░реНрддрдорд╛рди рдШрдЯрдирд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрдЪреЗрдВрдб рдЗрд╡реЗрдВрдЯ рдореЗрдВ, рдпрд╣ рд╡рд╣ рдЙрдВрдЧрд▓реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реВрдЪреА рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ:
рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ : рдЙрдВрдЧрд▓реА рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдЬреЛ рдЕрдм рд╕реНрдХреНрд░реАрди рдкрд░ рд╣реИ
рд▓рдХреНрд╖реНрдп : DOM рддрддреНрд╡, рдЬреЛ рдШрдЯрдирд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ
рдХреНрд▓рд╛рдЗрдВрдЯ / рдкреГрд╖реНрда / рд╕реНрдХреНрд░реАрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ : рд╡рд╣ рдмрд┐рдВрджреБ рдЬрд┐рд╕ рдкрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдШрдЯрдирд╛ рд╣реБрдИ
рддреНрд░рд┐рдЬреНрдпрд╛ рдФрд░ рд░реЛрдЯреЗрд╢рдирдЕрдВрдЬрд▓ : рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд рдЬреЛ рдПрдХ рдЙрдВрдЧрд▓реА рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ
рдЯрдЪрд╕реНрдЯрд╛рд░реНрдЯ, рдЯрдЪрдореЛрд╡ рдФрд░ рдЯрдЪреЗрдВрдб рдИрд╡реЗрдВрдЯ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдорд▓реНрдЯреА-рдЯрдЪ рдЬреЗрд╕реНрдЪрд░ - рдЬрд╝реВрдо, рд░реЛрдЯреЗрд╢рди, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХрд┐рд╕реА рднреА рдЯрдЪ-рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░реИрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкрд░реНрдпрд╛рдкреНрдд рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреЛ рдПрдХ рдмрд┐рдВрджреБ рд╕реНрдкрд░реНрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DOM рддрддреНрд╡ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
var obj = document.getElementById('id'); obj.addEventListener('touchmove', function(event) {
рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рднреА рдЯрдЪ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рдХреЛрдб рд╣реИ:
рдХрд╝реМрдо
рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд▓реНрдЯреА-рдЯрдЪ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреЙрд▓ рдЖрдпрд░рд┐рд╢ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ
рдХреИрдирд╡рд╛рд╕-рдЖрдзрд╛рд░рд┐рдд рдбреНрд░рд╛рдЗрдВрдЧ рдЯреВрд▓ рд╣реИ
рдФрд░
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдВрдЬрд╛ рдбреЗрдореЛ CSS3 рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ, рдмрджрд▓рд╛рд╡реЛрдВ рдФрд░ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдлрд▓ рдирд┐рдВрдЬрд╛ рдХреНрд▓реЛрди рд╣реИ:

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ
рдЬрд╝реВрдо рдХреА рд░реЛрдХрдерд╛рдо
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдорд▓реНрдЯреА-рдЯрдЪ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рдЕрдХреНрд╕рд░ рдЖрдкрдХреА рдЙрдВрдЧрд▓реА рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдЬрд╝реВрдо рдпрд╛ рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреВрдо рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдЯрд╛ рдЯреИрдЧ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
рдЕрдзрд┐рдХ рдареАрдХ-рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдХреЛ рджреЗрдЦреЗрдВ
www.html5rocks.com/mobile/mobifying.html#toc-met-viewportрд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдирд┐рд╡рд╛рд░рдг
рдХреБрдЫ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдЯрдЪрдореЛрд╡ рдЬреЗрд╕реНрдЪрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ iOS рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдХ рдУрд╡рд░рдХреНрд░реЛрд▓, рдЬреЛ рдкреГрд╖реНрда рдХреЛ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЕрдЧрд░ рд╕реНрдХреНрд░реЙрд▓ рдЕрдиреБрдореЗрдп рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╣реБ-рд╕реНрдкрд░реНрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рднреНрд░рд╛рдордХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
document.body.addEventListener('touchmove', function(event) { event.preventDefault(); }, false);
рдзреНрдпрд╛рди рд╕реЗ рдЦреАрдВрдЪрдирд╛
рдпрджрд┐ рдЖрдк рдПрдХ рдорд▓реНрдЯреА-рдЯрдЪ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЬрдЯрд┐рд▓ рдорд▓реНрдЯреА-рдлрд┐рдВрдЧрд░ рдЬреЗрд╕реНрдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЗрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╕реНрдкрд░реНрд╢ рдмрд┐рдВрджреБ рдЦреАрдВрдЪреЗ рдЧрдП рдереЗред рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
canvas.addEventListener('touchmove', function(event) { renderTouches(event.touches); }, false);
рдпрд╣ рд╡рд┐рдзрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рд╕рднреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var touches = [] canvas.addEventListener('touchmove', function(event) { touches = event.touches; }, false);
рд╕реЗрдЯрд░реНрд╕рдЯрд░рд╡рд▓ рдкрд░ рдЯрд╛рдЗрдорд░ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ redraw рдЪрдХреНрд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд░
рд░рд┐рдХреНрд╡реЗрд╕реНрдЯрдПрдирд┐рдореЗрд╢рдирдлреНрд░реЗрдо рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд▓реВрдкрд┐рдВрдЧ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реИ - рдпрд╣ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ рдФрд░ рдХрдо рдмреИрдЯрд░реА рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ setInterval рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд░реВрдк рд╣реЛрдЧрд╛ред
рдЯрд╛рд░рдЧреЗрдЯ рдФрд░ рдЪреЗрдВрдЬрдЯрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ event.touches рдЙрди
рд╕рднреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдЙрди рдЬреЛ DOM рддрддреНрд╡ рдХреЛ рдЫреВрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЖрдорддреМрд░ рдкрд░ event.targetTouches рдпрд╛ event.changedTouches рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдЖрдк рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ
рдПрд░рд┐рдХ рдмрд┐рдбреЗрд▓рдореИрди рд▓реЗрдЦ рдФрд░
рдбрдмреНрд▓реНрдпреВ 3 рдбреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред
рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдЙрдЪрд┐рдд рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ
рдбрд╛рдпрдЧреНрдиреЙрд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА, рдЬреЛ рдПрдХ рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдЯрдЪ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЯрдЪрдореЛрд╡ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдиреЗрдХреНрд╕рд╕ рд╡рди рдФрд░ рдиреЗрдХреНрд╕рд╕ рдПрд╕ рдкрд░ Android 2.3.3, Xoom рдкрд░ Android 3.0.1 рдФрд░ iPad рдФрд░ iPhone рдкрд░ iOS 4.2 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпреЗ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрдЪрд╕реНрдЯрд╛рд░реНрдЯ, рдЯрдЪреЗрдВрдб рдФрд░ рдЯрдЪрдореЛрд╡ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рдирд┐рд░реНрджреЗрд╢ 3 рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
рд╕реНрдкрд░реНрд╢рдХ : рдЙрдВрдЧрд▓реА DOM рддрддреНрд╡ рджрд░реНрдЬ рдХрд░реЗрдВред
рдЯрдЪрдЕрд▓реАрд╡ : рдЙрдВрдЧрд▓реА рдбреЛрдо рддрддреНрд╡ рдХреЛ рдЫреЛрдбрд╝рддреА рд╣реИред
рд╕реНрдкрд░реНрд╢рдХ : рд╕реНрдкрд░реНрд╢ рдмрд╛рдзрд┐рдд (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рд░реНрднрд░)ред
рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрдЪ рд▓рд┐рд╕реНрдЯ - рдЯрдЪ, рдЯрд╛рд░рдЧреЗрдЯ рдФрд░ рдЪреЗрдВрдЬ рдЯрдЪ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЛрдИ рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддреНрд░рд┐рдЬреНрдпрд╛, рддреНрд░рд┐рдЬреНрдпрд╛, рдпрд╛ рдШреВрд░реНрдгрди рдХреЛрдг рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдВрдЧрд▓реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
Touchmove рдШрдЯрдирд╛, рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 60 рдмрд╛рд░ рдЖрдЧред
Android 2.3.3 (Nexus)
Android рдЬрд┐рдВрдЬрд░рдмреНрд░реЗрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ (Nexus One рдФрд░ Nexus S) рдореЗрдВ рдорд▓реНрдЯреА-рдЯрдЪ рд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд
рдореБрджреНрджрд╛ рд╣реИ ред
Android 3.0.1 (Xoom)
Xoom рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдорд▓реНрдЯреАрдЯрдЪ рд╕рдкреЛрд░реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ DOM рдПрд▓рд┐рдореЗрдВрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рднрд┐рдиреНрди DOM рддрддреНрд╡реЛрдВ рдкрд░ рджреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗ:
obj1.addEventListener('touchmove', function(event) { for (var i = 0; i < event.targetTouches; i++) { var touch = event.targetTouches[i]; console.log('touched ' + touch.identifier); } }, false);
рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдирд╣реАрдВ рд╣реИ:
var objs = [obj1, obj2]; for (var i = 0; i < objs.length; i++) { var obj = objs[i]; obj.addEventListener('touchmove', function(event) { if (event.targetTouches.length == 1) { console.log('touched ' + event.targetTouches[0].identifier); } }, false); }
iOS 4.x (iPad, iPhone)
IOS рдбрд┐рд╡рд╛рдЗрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрдЪ рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрд░ рдЙрдкрдХрд░рдг
рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрд╡ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдорд▓реНрдЯреА-рдЯрдЪ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдкреАрд╕реА рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдкреАрд╕реА рдорд▓реНрдЯреА-рдЯрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреА рд╣реИ, рдЬреИрд╕реЗ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ (рд▓рдЧрднрдЧ рдкреНрд░рддрд┐ рдмрд╣реБрдд рдХрдард┐рди)ред рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЗ рдкреАрд╕реА рдкрд░ рдПрдХ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╣реИред рдПрдХ-рдмрд┐рдВрджреБ рд╕реНрдкрд░реНрд╢ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд▓реНрдЯреА-рдЯрдЪ рдХреЛ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдорд▓реНрдЯреА-рдЯрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рдРрдкреНрдкрд▓ рдореИрдХрдмреБрдХ рдкрд░ред
рд╕рд┐рдВрдЧрд▓ рдкреЙрдЗрдВрдЯ рдЗрд╡реЗрдВрдЯреНрд╕
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреАрд╕реА рдкрд░ рдПрдХ-рд╕реВрддреНрд░реАрдп рдШрдЯрдирд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
рдлреИрдВрдЯрдо рд▓рд┐рдореНрдм рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВ, рдЬреЛ рдкреГрд╖реНрдареЛрдВ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред
JQuery рдХреЗ рд▓рд┐рдП рдПрдХ
Touchable рдкреНрд▓рдЧрдЗрди рднреА рд╣реИ рдЬреЛ рдорд╛рдЙрд╕ рдФрд░ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдорд▓реНрдЯреА-рдЯрдЪ рдЗрд╡реЗрдВрдЯреНрд╕ (MAC only solution)
рдорд▓реНрдЯреАрдЯрдЪ рдбрд┐рд╡рд╛рдЗрд╕ (Apple рдореИрдХрдмреБрдХ рдпрд╛ рдореИрдЬрд┐рдХрдкреИрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдорд▓реНрдЯреАрдЯрдЪ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ
MagicTouch.js рдмрдирд╛рдпрд╛, рдпрд╣ рдЖрдкрдХреЗ рдЯреНрд░реИрдХрдкреИрдб рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд░реВрдк рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
1.
npTuioClient NPAPI рдкреНрд▓рдЧрдЗрди рдХреЛ ~ / рд▓рд╛рдЗрдмреНрд░реЗрд░реА / рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
2.
MagicPad рдХреЗ рд▓рд┐рдП
TongSeng TUIO рдРрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВред
3. рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
MagicTouch.js рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
4. рдХрдиреЗрдХреНрдЯ magictouch.js рдФрд░ npTuioClient рдкреНрд▓рдЧрдЗрди:
<head> ... <script src="/path/to/magictouch.js"></script> </head> <body> ... <object id="tuio" type="application/x-tuio" style="width: 0px; height: 0px;"> Touch input plugin failed to load! </object> </body>
рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╡рд▓ рдХреНрд░реЛрдо 10 рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдиреНрдп рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдкрдХрд╛ рдкреАрд╕реА рдорд▓реНрдЯреА-рдЯрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдиреНрдп TUIO рдЯреНрд░реИрдХрд░реНрд╕ рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрд╡рд┐рдЬрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрдЪ рдИрд╡реЗрдВрдЯ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА
TUIO рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА
рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЖрдкрдХреЗ рдЗрд╢рд╛рд░реЗ рдУрдПрд╕ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред OS X рдкрд░, рдЖрдк
рд╕рд┐рд╕реНрдЯрдо рд╡рд░реАрдпрддрд╛рдУрдВ рдХреЛ
рд╕рд┐рд╕реНрдЯрдо рд╡рд░реАрдпрддрд╛рдПрдБ> рдЯреНрд░реИрдХрдкреИрдб рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдорд▓реНрдЯреА-рдЯрдЪ рдЗрд╡реЗрдВрдЯ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдмрдврд╝рддреА рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реИ рдХрд┐ рдирдП рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд░реА рддрд╛рдХрдд рд╕реЗ рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗрдореВрд▓ рд▓реЗрдЦ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рд▓рд┐рдВрдХ рднреА рдлрд┐рд╕рд▓ рдЧрдпрд╛:
iPhone рдкрд░ рдЯрдЪ рдХрд░рдирд╛ рдФрд░ рдЗрд╢рд╛рд░реЗ рдХрд░рдирд╛рд╕реБрдЭрд╛рд╡, рдЗрдЪреНрдЫрд╛, рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!