IPhone HTML5 рдХреИрдирд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ "рд╕реНрдХреЗрдЪ" рд▓рд┐рдЦрдирд╛

рд╣реИрд▓реЛ, рд╣реЙрдХрд░реНрд╕!

рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдИрдлреЛрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЪрд┐рддреНрд░рдордп рд╕рдВрдкрд╛рджрдХ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рд▓реЗрдЦ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рднреА рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛:



рдЕрдзрд┐рдХ - рдХрдЯреМрддреА рдХреЗ рддрд╣рдд



рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐



рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ iPhone рд╡рд┐рдХрд╛рд╕ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреИрдирд╡рд╕ рддрдХрдиреАрдХ рджреЛрдиреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЙрд╕рдиреЗ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЖрд╡реЗрджрди рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдХреЛрдб рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓рд┐рдпреЛрдВ

рдкрд╣рд▓реЗ рддреЛ рдореИрдВрдиреЗ html рдХреЛрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реНрдЯрд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

body {
margin: 0;
padding: 0;
background: #fff;
}
/* , */
.tb {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 40px;
overflow: hidden;
border-bottom: 1px solid #CCC;
background-color: orange;
}
canvas {
position: absolute;
top: 40px;
left: 0;
}
/* */
.bt {
overflow: hidden;
float: left;
font-weight: bold;
color: white;
font: 16px Arial;
width: 33%;
padding-top: 10px;
height: 30px;
text-align: center;
}
/* select */
select {
float: left;
width: 33%;
margin-top: 10px;
height: 20px;
}


Html рдлрд╝рд╛рдЗрд▓

рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╖рдп рдЖрдХрд╛рд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рдВрдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕реЗред

рдореЗрдЯрд╛ рд╡реНрдпреВрдкреЛрд░реНрдЯ


 ... <head> <meta name="viewport" content="width=device-width,user-scalable=no" /> </head> ... 


рд╡реНрдпреВрдкреЛрд░реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдореЗрдЯрд╛ рдЯреИрдЧ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрда рдХреА рдЪреМрдбрд╝рд╛рдИ (рдЪреМрдбрд╝рд╛рдИ), рдКрдВрдЪрд╛рдИ (рдКрдВрдЪрд╛рдИ) рдХреНрдпрд╛ рд╣реЛрдЧреА, рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЬрд╝реВрдо рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрдХреЗрд▓реЗрдмрд▓ рдорд╛рди), рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрд╝реВрдо рдкреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдкреНрд░рд╛рд░рдВрднрд┐рдХ-рд╕реНрдХреЗрд▓), рдиреНрдпреВрдирддрдо (рдиреНрдпреВрдирддрдо-рд╕реНрдХреЗрд▓) рдФрд░ рдЕрдзрд┐рдХрддрдо (рдЕрдзрд┐рдХрддрдо-рд╕реНрдХреЗрд▓) рдЬрд╝реВрдо рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕-рдЪреМрдбрд╝рд╛рдИ / рдбрд┐рд╡рд╛рдЗрд╕-рдКрдВрдЪрд╛рдИ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред

рдмреНрд░рд╢ рдХрд╛ рд░рдВрдЧ / рдЖрдХрд╛рд░ рдЪреБрдиреЗрдВ


рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рд░рдВрдЧ рдкрд╕рдВрдж рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рд╡рд┐рдХрд▓реНрдк рдЯреИрдЧ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд░рдВрдЧ рдФрд░ рдЖрдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ "рд░рдВрдЧ" рдпрд╛ "рдЖрдХрд╛рд░" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ , рдХреЗрд╡рд▓ рдЪрдпрдирд┐рдд рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрдХрд╕ рднреЗрдЬреЗрдВред ред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ iPhone рдкрд░ рдлреЛрдХрд╕ рд╡рд╛рд▓рд╛ рдЪреБрдирд┐рдВрджрд╛ рдЯреИрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдлреЛрдХрд╕ (рд╡рд┐рдзрд┐ред рдлрд╝реЛрдХрд╕ () ), рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрдВ рдирд╣реАрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╣рд╛рд░ рдирд╣реАрдВ рдорд╛рдиреА! рдФрд░ рдпрд╣рд╛рдБ рдореИрдВрдиреЗ рдХреНрдпрд╛ рд╕реЛрдЪрд╛ рд╣реИ: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА div рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрди рдЪреБрдирд┐рдВрджрд╛ рддрддреНрд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрд▓рд╛рдХ, рдмрджрд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдмрдЯрди рдкрд░ рд▓рдЧрд╛рдУ! рдФрд░ рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ? рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдХрд┐:

рдореИрдВ рд╣реИрдХ рдХреЛрдб рд▓рд╛рддрд╛ рд╣реВрдВ:
 <!-- ,    --> <div id="tb" style="z-index: 2"> <div class="bt"></div> <div class="bt"></div> <a class="bt"></a> </div> <!-- ,    --> <div id="htb" style="opacity: 0; z-index: 3"> <select id="hcs"> <option>blue</option> <option>red</option> <option>green</option> <!--      --> </select> <select id="hss"> <option>10</option> <option>11</option> <option>12</option> <!--      --> </select> <a class="bt" id="savebutton" style="z-index: 20;"></a> </div> 

(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд╛рдЗрдЯ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рдлреНрд░реЗрдо рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдмрд╛рдд рдХреНрд▓рд┐рдХрдЬреИрдХрд┐рдВрдЧ рдХрд╣рд▓рд╛рддреА рд╣реИ)


рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк



рдкрд╛рдардХ рдХреЛ рдХреЛрдб рдХреА рд╕реМ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреНрдпреЛрдВред

рдбрд┐рд╡рд╛рдЗрд╕ рдЗрд╡реЗрдВрдЯ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ


ontouchstart - рдЯреНрд░рд┐рдЧрд░ рддрдм рд╣реБрдЖ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдкрд╛рд░ рд▓реЗ рдЬрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ (рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдСрдирдорд╛рдЙрдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред

ontouchmove - рдЯреНрд░рд┐рдЧрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реНрд╡рд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рдХреА рддреБрд▓рдирд╛ onmousemove рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред

ontouchend - рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдХреЛ рд╕реНрдХреНрд░реАрди рд╕реЗ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ рддреЛ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдСрдирдорд╛рдЙрд╕ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред

рдЬреЗрдиреЗрдЪрд░ рдПрдкреАрдЖрдИ рд╕реЗ рдСрдиреЗрд╕реНрдЯреЗрдпреБрд░рдЪреЗрдВрдЬ , рдСрдиреЗрд╕реНрдЯреАрдУрд░реЗрдиреНрдб рднреА рд╣реИ , рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░рддреНрдпреЗрдХ рдИрд╡реЗрдВрдЯ рд╕реНрдкрд░реНрд╢ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдореЗрдВ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:
pageX , pageY , clientX , clientY ред рд╕реНрдкрд░реНрд╢ рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреВрдиреЗ рд╡рд╛рд▓реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЗ рд╕реНрдкрд░реНрд╢ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
 someElement.ontouchstart = function(e) { console.log("X: " + e.touches[0].pageX + ", Y:" + e.touches[0].pageY); } 


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдЪрд▓реЗрдЧрд╛? рдЕрдВрдХреЛрдВ рдкрд░

рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдХреНрдпреЛрдВ рд╣реИ?
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдмреЗрдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╡рдХреНрд░ (рдЕрдзрд┐рдХ рдмрд╛рд░ - рдЗрд╕рдХрд╛ рдЕрдВрдд) рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЕрдЧрд▓рд╛ рдирд┐рдпрдВрддреНрд░рдг рд╕рдордиреНрд╡рдп рджреВрд╕рд░реА рддрд░рдл рд╣реИред рдпрджрд┐ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдзреА рд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреЗрдЬ рдкрд░рд┐рдкрддреНрд░ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдЖрдк рд╕реБрдВрджрд░ рдХреЛрдг рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпреЛрдВ рджреВрд╕рд░реЗ рдХреИрдирд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ redraw

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдкреНрд░рддреНрдпреЗрдХ "рд╕реНрдЯреНрд░реЛрдХ" рдХреЗ рдмрд╛рдж рдореБрдЦреНрдп рдХреИрдирд╡рд╛рд╕ рд╕реЗ рдЫрд╡рд┐ рд╕рд╣рд╛рдпрдХ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдХреНрд▓реЛрди рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдореБрдЦреНрдп рдХреИрдирд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд░рдгреА рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░рдгреА рдореЗрдВ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рдж рд╕реЗ, рд╣рдорд╛рд░реА рдбреНрд░рд╛рдЗрдВрдЧ рдзреАрдореА рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд░реЗрдбреНрд░рд╛ рдмрдлрд░ рдХреЛ 1 рд╕реНрдЯреНрд░реЛрдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ (рдпрджрд┐ рдЖрдк рдПрдХ рдмрдбрд╝рд╛ рд╕реНрдЯреНрд░реЛрдХ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЧрддрд┐ рднреА рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИ)ред

рдХреЛрдб

рдХреИрдирд╡рд╕ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб

 var width = window.innerWidth; //  var height = window.innerHeight; //  var hcanv = document.createElement("canvas"); //    var mcanv = document.createElement("canvas"); //    //   mcanv.width = width; mcanv.height = height; hcanv.width = width; hcanv.height = height; //   DOM document.body.appendChild(mcanv); document.body.appendChild(hcanv); hcanv.style.zIndex = 10; //     //  var mctx = mcanv.getContext("2d"); var hctx = hcanv.getContext("2d"); 


рд░рдВрдЧ рдФрд░ рдмреНрд░рд╢ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдЪрдпрди

 var selects = document.getElementsByTagName("select"); //   select for(var i=0; i<selects.length; i++) { //  selects[i].onchange = handleSelects; //       } function handleSelects() { //    var val = this.options[this.selectedIndex].value; switch(this.id) { //  ,     case "hcs": brush.color = val; //   break; case "hss": brush.size = val; //   break; } } 


рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛрдб


 var touches = {x:[], y:[]}; //   var brush = {color: "blue", size: 10}; //   var snapshot = ""; //    hcanv.ontouchstart = function(e) { //   //    touches.x.push(e.touches[0].pageX); touches.y.push(e.touches[0].pageY-40); //40  -    hctx.clearRect(0, 0, width, height); //  redraw(hctx); //  () return false; //    - } hcanv.ontouchmove = function(e) { //   //    touches.x.push(e.touches[0].pageX); touches.y.push(e.touches[0].pageY-40); hctx.clearRect(0, 0, width, height); //  redraw(hctx); // () return false; //    - ( etc) } hcanv.ontouchend = function(e) { //     snapshot = hcanv.toDataURL(); //  URL    png var img = new Image(); //    img.src = snapshot; //   url img.onload = function() { //   (     ) mctx.drawImage(img, 0, 0); //     hctx.clearRect(0, 0, width, height); //   } //  touches.x = []; touches.y = []; } //  function redraw(ctx) { ctx.lineCap = "round"; //   ctx.lineJoin = "round"; //  ctx.strokeStyle = brush.color; //  ctx.lineWidth = brush.size; //   ctx.beginPath(); if(touches.x.length < 2) { //,      ctx.moveTo(touches.x[0], touches.y[0]); ctx.lineTo(touches.x[0] + 0.51, touches.y[0]); ctx.stroke(); ctx.closePath(); return; } ctx.moveTo(touches.x[0], touches.y[0]); ctx.lineTo((touches.x[0] + touches.x[1]) * 0.5, (touches.y[0] + touches.y[1]) * 0.5); var i = 0; while(++i < (touches.x.length -1)) { var abs1 = Math.abs(touches.x[i-1] - touches.x[i]) + Math.abs(touches.y[i-1] - touches.y[i]) + Math.abs(touches.x[i] - touches.x[i+1]) + Math.abs(touches.y[i] - touches.y[i+1]); var abs2 = Math.abs(touches.x[i-1] - touches.x[i+1]) + Math.abs(touches.y[i-1] - touches.y[i+1]); if(abs1 > 10 && abs2 > abs1 * 0.8) { //,      ctx.quadraticCurveTo(touches.x[i], touches.y[i], (touches.x[i] + touches.x[i+1]) * 0.5, (touches.y[i] + touches.y[i+1]) * 0.5); continue; } ctx.lineTo(touches.x[i], touches.y[i]); ctx.lineTo((touches.x[i] + touches.x[i+1]) * 0.5, (touches.y[i] + touches.y[i+1]) * 0.5); } ctx.lineTo(touches.x[touches.x.length-1], touches.y[touches.y.length-1]); ctx.moveTo(touches.x[touches.x.length-1], touches.y[touches.y.length-1]); ctx.stroke(); ctx.closePath(); } 


рдбреЗрдореЛ
рд╕реНрд░реЛрдд рдХреЛрдб

рдкреБрдирд╢реНрдЪ рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ - рдкреВрдЫреЗрдВ! рдореИрдВ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In126432/


All Articles