рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреИрдирд╡рд╕ рдПрдХ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд╖рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ "рдЕрдЪреНрдЫрд╛рдИ" рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдФрд░ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╖рдп рдХреА рддрд░рд╣ рдХреИрд╕реЗ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ - рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╡реЗрдм рдкрд░ рд╕рд╛рджреЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рднреА рд▓рдЧрднрдЧ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдкреЛрдЬрд┐рд╢рдирд┐рдВрдЧ, рд╕реНрдЯрд╛рдЗрд▓ рдФрд░ рдЧреНрд░реЗрдбрд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╡рд╛рдХреНрдп рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдФрд░ рдкрд░реЗрд╢рд╛рдиреА рдореБрдХреНрдд рд╣реИред
рд╕рд╛рджрд╛ рдкрд╛рда
рд╕рд╛рджреЗ рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЛ рд╕рдВрджрд░реНрдн рдлрд╝рдВрдХреНрд╢рдВрд╕
fillText () рдФрд░
stroText () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпреЗ рдлрд╝рдВрдХреНрд╢рди рддреАрди рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддреЗ рд╣реИрдВ: рдкрд╛рда рд╕реНрд╡рдпрдВ рдФрд░ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдЕрд░реНрдерд╛рддреНред рдЗрд╕рдХрд╛ рд╕реНрдерд╛рди рдФрд░ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ: рдкрд╛рда рдХреА рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ, рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рда рдХреА рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдкрд╛рда рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рд╕рд┐рдХреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрдХреБрдЪрд┐рдд рд╣реЛрдиреЗ рдкрд░ рднреА рдЦрд░рд╛рдм рдирдЬрд╝рд░ рдЖрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдкрд░ рдкрд╛рда рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдирдХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдкрд╛рда рдЫреЛрдЯрд╛ рдФрд░ рдиреЙрдиреНрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЧрд╛ред рд╣рдо
рдлрд╝реЙрдиреНрдЯ рд╕рдВрджрд░реНрдн рдЪрд░ рдореЗрдВ рдлрд╝реЙрдиреНрдЯ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝реЙрдиреНрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реАрдПрд╕рдПрд╕ ([рдлрд╝реЙрдиреНрдЯ рд╢реИрд▓реА] [рдлрд╝реЙрдиреНрдЯ рд╡рдЬрди] [рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░] [рдлрд╝реЙрдиреНрдЯ рдЪреЗрд╣рд░рд╛]) рдореЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
ctx.fillStyle = "#00F"; ctx.strokeStyle = "#F00"; ctx.font = "italic 30pt Arial"; ctx.fillText("Fill text", 20, 50); ctx.font = 'bold 30px sans-serif'; ctx.strokeText("Stroke text", 20, 100);
рдбреЗрдореЛрдкрд╛рда рд▓реЗрдЖрдЙрдЯ
рдкрд╛рда рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЛ рдорд╛рдирдХ рддрд░реАрдХреЗ рд╣реИрдВ: рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдФрд░ рдХреНрд╖реИрддрд┐рдЬред
рдЯреЗрдХреНрд╕реНрдЯрдмрд╛рд╕рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рд╕рдВрднрд╡ рд╡рд┐рдХрд▓реНрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рд╢реАрд░реНрд╖, рдлрд╛рдВрд╕реА, рдордзреНрдп, рдЕрд▓реНрдлрд╛рдмреЗрдЯрд┐рдХ, рд╡реИрдЪрд╛рд░рд┐рдХ рдФрд░
рдиреАрдЪреЗ ред
ctx.textBaseline = "bottom"; ctx.fillText("bottom", 400, 75);
рдбреЗрдореЛрдФрд░ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ textAlign рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
рдХреЗрдВрджреНрд░, рдкреНрд░рд╛рд░рдВрдн, рдЕрдВрдд, рдмрд╛рдПрдВ, рджрд╛рдПрдВ ред
context.textAlign = "center"; ctx.textBaseline = "bottom"; context.fillText("center", 250, 20);
рдбреЗрдореЛрдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЖрджрд░реНрд╢ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдорджрдж рд╕реЗ рдкрд╛рда рдХреЛ рд╕реНрдерд╛рди рджреЗрдирд╛ рдХрднреА-рдХрднреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдкрд╛рда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
stylization
рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдПрдХ рд░рдВрдЧ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд░рдВрдЧ рдХреЛ рднрд░рдиреЗ рдХреЗ рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд░рдВрдЧ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╕реНрдЯреНрд░реЛрдХ рд░рдВрдЧ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЛрдХ рдХрд░реЗрдВред
CSS3 рдХреА рддрд░рд╣, рдЖрдк рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдкрд╛рда рдкрд░ рдЫрд╛рдпрд╛ рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╢реИрдбреЛрдХреНрд▓рд░ - рдЫрд╛рдпрд╛ рдХреЗ рд░рдВрдЧ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛,
рд╢реИрдбреЛрдСрдлрд╕реЗрдЯрдПрдХреНрд╕ рдФрд░
рд╢реИрдбреЛрдСрдлрд╕реЗрдЯ - рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдФрд░ рд╢реИрдбреЛрдмреНрд▓рд░ рд╕реЗрдЯ рдХрд░рдирд╛ - рдЫрд╛рдпрд╛ рдХреЗ рдзреБрдВрдзрд▓реЗрдкрди рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ред
ctx.shadowColor = "#F00"; ctx.shadowOffsetX = 5; ctx.shadowOffsetY = 5; ctx.shadowBlur = 5; ctx.strokeText("Shadow text", 20, 100);

рдкрд╛рда рдХреЗ рд▓рд┐рдП рд╕реНрдирд╛рддрдХ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдврд╛рд▓ рдЦреБрдж
createLinearGradient () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдФрд░
AddColorStop () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рдЗрд╕рдореЗрдВ рд░рдВрдЧ рдФрд░ рдЙрдирдХреЗ рд╕реНрдерд╛рди рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдкрд╛рда рдХреЛ рдПрдХ рдврд╛рд▓ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдареЛрд╕ рд░рдВрдЧ рд╕реЗ рднрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рднрд░рдг рдФрд░
рд╕реНрдЯреНрд░реЛрдХ рд╕реЗрд▓реЗрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рддрд╛ рд╣реИ ред
var gradient = ctx.createLinearGradient(0, 0, 0, 60); gradient.addColorStop(0.0, 'rgba(0, 0, 255, 1)'); gradient.addColorStop(0.3, 'rgba(128, 0, 255, 0.6)'); gradient.addColorStop(0.6, 'rgba(0, 0, 255, 0.4)'); gradient.addColorStop(1.0, 'rgba(0, 255, 0, 0.2)'); ctx.fillStyle = gradient;

рд╕рд╛рдорд╛рдиреНрдп рднрд░рдг рдФрд░ рдврд╛рд▓ рднрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХрд┐рд╕реА рднреА рдмрдирд╛рд╡рдЯ рдореЗрдВ рднреА рднрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рда рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдЫрд╡рд┐ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдФрд░ рдлрд┐рд░ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреЗ
рд▓рд┐рдП createPattern () рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдЖрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЫрд╡рд┐ рджреЛрд╣рд░рд╛рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред
var pattern = ctx.createPattern(img, 'repeat'); ctx.fillStyle = pattern;
рдбреЗрдореЛрдкрд╛рда рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдмрд╣реБрд╕реНрддрд░реАрдп рдкрд╛рда
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрд╕реАрдорд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдкрд╛рда рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рд╢рдмреНрдж рд╣реЛ, рдпрд╛ рдХрдИ рд╡рд╛рдХреНрдп рд╣реЛрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рдкреВрд░реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ
fillText () рдореЗрдВ
рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ , рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рдХреИрдирд╡рд╛рд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред рдпрд╛рдиреА рдпрджрд┐ рдХреИрдирд╡рд╛рд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ 400 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕ рдкрд╛рда рдХреЛ рджреВрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЙрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИред рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд░рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкрд╛рда рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреА рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╣рдо рдЗрд╕ рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдкрд╛рда рдХреА рдЪреМрдбрд╝рд╛рдИ рдЙрд╕ рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдкрд╛рда рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рда рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
рдкрд╛рда рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
рдорд╛рдкрдХ () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда рдХреА рдЪреМрдбрд╝рд╛рдИ рджреЗрддрд╛ рд╣реИ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкрд╛рда рдХреА рдКрдВрдЪрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдЖрдкрдХреЛ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреА, рдмрд╛рдХреА рд▓реЗрдЦ рдореЗрдВ) ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
function wrapText(context, text, marginLeft, marginTop, maxWidth, lineHeight) { var words = text.split(" "); var countWords = words.length; var line = ""; for (var n = 0; n < countWords; n++) { var testLine = line + words[n] + " "; var testWidth = context.measureText(testLine).width; if (testWidth > maxWidth) { context.fillText(line, marginLeft, marginTop); line = words[n] + " "; marginTop += lineHeight; } else { line = testLine; } } context.fillText(line, marginLeft, marginTop); } var canvas = document.getElementById("canvas"); var context = canvas.getContext("2d"); var maxWidth = 400;
рдбреЗрдореЛрдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЖрдкрдХреЛ рдкрд╛рда рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдкрд╛рда рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ рдФрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рд░реАрдХрддрд╛ рд╣реИ, рдкрд╛рда рдХреА рдКрдБрдЪрд╛рдИ рд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝реЙрдиреНрдЯ рдпрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдкрд╛рда рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
рдкрдВрдХреНрддрд┐рдмрджреНрдз рдЪрд░)ред
рдкрд╛рда рдХреА рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
рдХреИрдирд╡рд╛рд╕ рдкрд░ рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рди рддреЛ
рдорд╛рдкрдХ () рдлрд╝рдВрдХреНрд╢рди, рдФрд░ рди рд╣реА рдХреЛрдИ рдЕрдиреНрдп, рд╣рдореЗрдВ рдкрд╛рда рдХреА рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдЗрд╕ рдЖрдкрджрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореИрдВ рдЖрдкрдХреЛ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЬрдм рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ (рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдФрд░ рд╢реИрд▓реА) рдХреЛ
рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЙрд╕реА рд╢реИрд▓реА рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдлрд╝реЙрдиреНрдЯ рдФрд░ рдЙрдирдХреЗ рдЖрдХрд╛рд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрджрд┐ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдРрд╕рд╛ рдлрд╝реЙрдиреНрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝реЙрдиреНрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реИ рдлрд╝реЙрдиреНрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ, рд╣рдо DOM рдореЗрдВ рдПрдХ рдирдпрд╛ рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛,
рдСрдлрд╕реЗрдЯрд╣рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рдХреЗ рд╣рдо рддрддреНрд╡ рдХреА рдКрдВрдЪрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рда рдХреА рдКрдВрдЪрд╛рдИ рд╣реЛрдЧреАред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреЛ DOM рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
var text = " ."; var marginLeft = canvas.width - context.measureText(text).width; var marginTop = canvas.height - getFontHeight(context.font); context.fillText(text, marginLeft, marginTop); function getFontHeight(font) { var parent = document.createElement("span"); parent.appendChild(document.createTextNode("height")); document.body.appendChild(parent); parent.style.cssText = "font: " + font + "; white-space: nowrap; display: inline;"; var height = parent.offsetHeight; document.body.removeChild(parent); return height; }
рдкрд░рд┐рдгрд╛рдо:
рдбреЗрдореЛрдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдкрд╛рда рдХреА рдКрдВрдЪрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдпрд╛ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж