
рдЯреЛрд╕реНрдЯрд░ рдкрд░, рд╡реЗ рдЕрдХреНрд╕рд░ рдШрд░ рдХреЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдЖрд░реЗрдЦ, рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рдПрдХ рдпреЛрдЬрдирд╛, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдлрд░реНрд╢ рдпрд╛ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрддреНрдкрд╛рдж рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдПрдХ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдЙрдирдХреЗ рдКрдкрд░ рдорд╛рдЙрд╕ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдпрд╣ рдПрдХ рддреАрди-рдЖрдпрд╛рдореА рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реА рддрд╕реНрд╡реАрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпреЗ рд╕рднреА рдХрд╛рд░реНрдп рд╕рдорд╛рди рд╣реИрдВ рдФрд░ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╕рд╛рдордиреЗ рдЖрддреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдЬ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ SVG, рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдПрдбрд┐рдЯрд░ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рдЪреБрдЯрдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрд╕рд╡реАрдЬреА рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореИрдВ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдорд┐рд▓рд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдШрдЯрддрд╛ рдкрд░ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЯреВрд▓ рдЦреЛрд▓реЗ рдФрд░ рддреБрд░рдВрдд рдкреВрд░реА рд╕рдВрд░рдЪрдирд╛, рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рджреЗрдЦрд╛ред рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдПрдХ рдорд╛рдирд╡-рдЕрдиреБрдХреВрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп 2 рдбреА рдХреИрдирд╡рд╛рд╕ рдФрд░ рдПрд╕рд╡реАрдЬреА рдХреЗ рдмреАрдЪ рдкреНрд░рджрд░реНрд╢рди рд╢рд╛рдпрдж рд╣реА рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред WebGL рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рдмреЛрдирд╕ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдордп рдХрд╛рдлреА рдмрдврд╝ рдЬрд╛рдПрдЧрд╛, рдЖрдЧреЗ рд╕рдорд░реНрдерди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рд╣рдореЗрд╢рд╛ рдмрдЬрдЯ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рднреА рдХрд╣реВрдВрдЧрд╛ рдХрд┐ "рдХрднреА рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред"
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд┐рдЬреА рдШрд░реЛрдВ рдХреЛ рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХреА рддрд░рд╣ рдХреБрдЫ рднреА рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╡рд┐рд╖рдп рдореЗрдВ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ
рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдХрд╕реНрдХреЗрдк рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рднреА рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛ рдореБрдЦреНрдп рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЪрд╛рд╣рд┐рдП:
- XML рд╕рдВрдкрд╛рджрдХ (Ctrl + Shift + X рдпрд╛ рдХреЛрдг рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдЗрдХрди) - рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- рднрд░реЗрдВ рдФрд░ рд╕реНрдЯреНрд░реЛрдХ (Ctrl + Shift + F рдпрд╛ рдлреНрд░реЗрдо рдореЗрдВ рдмреНрд░рд╢ рдХреЗ рд╕рд╛рде рдЖрдЗрдХрди) - рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд░реВрдкрд░реЗрдЦрд╛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рддреБрд░рдВрдд рдЙрдиреНрд╣реЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдпрджрд┐ рдЖрдкрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рдКрдкрд░реА рдлреНрд░реЗрдо рдХреЗ рдиреАрдЪреЗ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрд╣рд╛рдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ), рдФрд░ рдЙрдиреНрд╣реЗрдВ рдореБрдЦреНрдп рдПрдХ рдкрд░ рд╡рд╛рдкрд╕ рдЦреАрдВрдЪреЗрдВред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдХреНрд╖реЗрддреНрд░ рдХреЗ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдлреЛрдЯреЛ рдЦреЛрд▓реЗрдВред рд╣рдо рдЪрд┐рддреНрд░ рдХреЛ рдмреЗрд╕ 64 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдмрд╛рд╣рд░реА рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдпрд╣ рдмрдбрд╝рд╛ рд╣реИ, рд▓рд┐рдВрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рддрдм рд╣рдо рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдкрде рдмрджрд▓ рджреЗрдВрдЧреЗ рдЬрдм рд╕рд╛рдЗрдЯ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдПрд╕рд╡реАрдЬреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлреЛрдЯреЛ рдХреЛ рдЫрд╡рд┐ рдЯреИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд░реЗрдЦрд╛рдкреБрдВрдЬ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, HTML рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб, рдЖрдк рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдкреГрд╖реНрдареЛрдВ рдкрд░ рд╕рд╛рдзрд╛рд░рдг рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреАред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред
рд╡рд░реНрддрдорд╛рди рд╕реНрддрд░ рдкрд░, рд╣рдо рдЕрдкрдиреЗ рд╕рд╛рдордиреЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЕрдм рдПрдХ рдирдИ рд▓реЗрдпрд░ рдмрдирд╛рдПрдВ (Ctrl + Shift + N рдпрд╛ Menu> Layer> Add рд▓реЗрдпрд░)ред рдПрдХреНрд╕рдПрдордПрд▓ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рдЬреА рддрддреНрд╡ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдЬрдмрдХрд┐ рд╣рдо рджреВрд░ рдирд╣реАрдВ рдЧрдП рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ рдПрдХ рдХрдХреНрд╖рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдмрд╛рдж рдореЗрдВ рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
рдЖрдИрдбреА рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░реЗрдВред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬрд┐рддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рджреЛрд╣рд░рд╛рдирд╛ рдФрд░ рдЕрдЬреАрдм рдмрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдпрд╛ рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣рдорд╛рд░реА рдкрд╕рдВрдж рд╣реИрдВред
рдпрджрд┐ рдЖрдк XML рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдлрд╝рд╛рд▓рддреВ рд╣реИред рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдпрд╣ рд╕рдм рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рдФрд░ рдзрдиреНрдпрд╡рд╛рдж рдХрд╛рд░реНрдп рд╣реИ, рд╕рдВрдкрд╛рджрдХ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдХрдЪрд░реЗ рд╕реЗ рдПрд╕рд╡реАрдЬреА рдХреА рд╕рдлрд╛рдИ рдХреЗрд╡рд▓ рдХрд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рдореЗрдВ, рдЪреВрдВрдХрд┐ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА svgo ред
рдбреНрд░рд╛ рдмреЗрдЬрд┐рдпрд░ рдХрд░реНрд╡реНрд╕ рдФрд░ рд╕реНрдЯреНрд░реЗрдЯ рд▓рд╛рдЗрдиреНрд╕ (Shift + F6) рдирд╛рдордХ рдЯреВрд▓ рдЦреЛрдЬреЗрдВред рдЗрд╕рдХреЗ рд╕рд╛рде, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмрдВрдж рдЖрдХреГрддрд┐ рдЦреАрдВрдЪреЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдореЗрдВ, рд╣рдореЗрдВ рд╕рднреА рднрд╡рдиреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЦреБрдж рдХреЛ рдЫрд╣ рддрдХ рд╕реАрдорд┐рдд рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдкреВрд░реНрд╡ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд╕рдорд╛рди рдЗрдХрд╛рдЗрдпрд╛рдВ рд╣реИрдВ, рдПрдХ рдЗрдорд╛рд░рдд рдкрд░ рд╕рдорд╛рди рдордВрдЬрд┐рд▓ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рдереЛрдбрд╝рд╛ рдЧрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдШрдЯрддрд╛ рдХреЛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрд╡рд╢реНрдпрдХ рдЗрдорд╛рд░рддреЛрдВ рдХреЗ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо XML рд╕рдВрдкрд╛рджрдХ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ, рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдпрд╛, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛, рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ (рдпрд╣ рдкрддреЗ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдХреЗрд╡рд▓ рд╡рд╣рд╛рдБ рд╣реИ рдЕрдиреБрдХреНрд░рдорд┐рдд), рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдкрд░рдд рдкрд░ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ "рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░ рд░рдЦреА" рд╣реЛред рдФрд░ рд╡реИрд╕реЗ, рдЪрд┐рддреНрд░, рд╡рд╣рд╛рдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣реЛ, рд▓реЗрдХрд┐рди рдпреЗ рдЯреНрд░рд┐рдлрд╝рд▓реНрд╕ рд╣реИрдВред
рдЕрдм, рдПрдХ рдкрде рдЪреБрдирд╛ рдЧрдпрд╛ - рднрд╡рди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╡рдХреНрд░, рдЖрдк рдЙрди рд╕рднреА рдХреЛ Ctrl + A рдпрд╛ рдореЗрдиреВ> рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ> рд╕рднреА рдЪреБрдиреЗрдВ рдФрд░ рдЙрд╕реА рд╕рдордп рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛ рдлрд┐рд▓ рдФрд░ рд╕реНрдЯреНрд░реЛрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреЗрдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реА рд╕рдордп рд╡рд╣рд╛рдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░реЛрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдареАрдХ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВред

рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХреБрдЫ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рднреА рдЖрдХреГрддрд┐ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЦрд╛рд▓реА рд░рд╛рд╕реНрддреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдврд╝ рднрд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ - рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдХреЛрдИ рднреА рдЗрд╕ рднрд░рдг рдХреЛ рди рджреЗрдЦреЗред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдлреЗрдж рд░рдВрдЧ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рди рдЗрдорд╛рд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкрд╛рд╕ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдореВрд▓ рдЙрджрд╛рд╣рд░рдг
рдЪрд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА html рдкреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк SVG рдХреЛ рд╕реАрдзреЗ рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ CSS рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕реНрдХреНрд░реАрди рд╕реЗ рдХреБрдЫ рднреА рди рдирд┐рдХрд▓реЗред рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред
.map { width: 90%; max-width: 1300px; margin: 2rem auto; border: 1rem solid #fff; border-radius: 1rem; box-shadow: 0 0 .5rem rgba(0, 0, 0, .3); } .map > svg { width: 100%; height: auto; border-radius: .5rem; }
рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЗрдорд╛рд░рддреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рд╕реАрдПрд╕рдПрд╕ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рдВрд░рдЪрд┐рдд рд╣реЛред
.building { transition: opacity .3s ease-in-out; } .building:hover { cursor: pointer; opacity: .8 !important; } .building.-available { fill: #0f0 !important; } .building.-reserved { fill: #f00 !important; } .building.-service { fill: #fff !important; }
рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдЗрдирд╕реНрдХреЗрдк рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛? рд╣рд╛рдБ рдФрд░ рдирд╣реАрдВред рдпрд╣ рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдиреЗ рд░рдВрдЧреАрди рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХреБрдЫ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рдкреЗрдЯ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛрдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдШрд░реЛрдВ рдкрд░ рддрд╛рдЬрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рдФрд░ рдЙрдирдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛:
const data = { id_0: { status: 'service' }, id_1: { status: 'available' }, id_2: { status: 'reserved' }, id_3: { status: 'available' }, id_4: { status: 'available' }, id_5: { status: 'reserved' }, messages: { 'available': ' ', 'reserved': '', 'service': ' 1-2 ' } }; const map = document.getElementById('my-map'); const buildings = map.querySelectorAll('.building'); for (building of buildings) { const id = building.getAttribute('data-building-id'); const status = data[`id_${id}`].status; building.classList.add(`-${status}`); }
рд╣рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ:

рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рдЬреИрд╕рд╛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдордиреЗ рднреВ-рднрд╛рдЧ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдорд╛рдЙрд╕ рд╣реЛрд╡рд░ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдорд╛рдирдХ addEventListener рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рд▓реАрдбрд░ рд▓рд╛рдЗрди
рдЕрдХреНрд╕рд░ рдРрд╕реА рд▓рд╛рдЗрдиреЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдореМрдЬреВрдж рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдкреГрд╖реНрда рдкрд░ рдореМрдЬреВрдж рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдЧреА, рд╕рд╛рде рд╣реА рдЗрди рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдордБрдбрд░рд╛рддреЗ рд╕рдордп рдХрдо рд╕реЗ рдХрдо рдЯреВрд▓рдЯрд┐рдкреНрд╕ рднреА рдмрдирд╛рдПрдЧреАред рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реАрдбрд░-рд▓рд╛рдЗрди рдорд┐рдиреА-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ, рдЬреЛ рд╣рд░ рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рддреАрд░ рдмрдирд╛рддреА рд╣реИред
рдЪрд▓реЛ рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВред
const data = { id_0: { price: '3000', status: 'service' }, id_1: { price: '3000', status: 'available' }, id_2: { price: '2000', status: 'reserved' }, id_3: { price: '5000', status: 'available' }, id_4: { price: '2500', status: 'available' }, id_5: { price: '2500', status: 'reserved' }, messages: { 'available': ' ', 'reserved': '', 'service': ' (1-2 )' } }; const map = document.getElementById('my-map'); const buildings = map.querySelectorAll('.building'); const info = map.querySelector('.info'); const lines = []; for (building of buildings) { const id = building.getAttribute('data-building-id'); const status = data[`id_${id}`].status; const price = data[`id_${id}`].price; building.classList.add(`-${status}`); const line = new LeaderLine( LeaderLine.pointAnchor(building, { x: '50%', y: '50%' }), LeaderLine.pointAnchor(info, { x: '50%', y: 0 }), { color: '#fff', startPlug: 'arrow1', endPlug: 'behind', endSocket: 'top' } ); lines.push(line); }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдореЗрдВ "рдЕрдЯреИрдЪрдореЗрдВрдЯ рдкреЙрдЗрдВрдЯ" рд╣реЛрддреЗ рд╣реИрдВред рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реВрдЪреА рдФрд░ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд░реНрдл рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ - рд╕реНрдЯрд╛рд░реНрдЯрд▓реИрдм - рдПрдХ рдХреАрдордд рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдЯреВрд▓рдЯрд┐рдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред
const line = new LeaderLine( LeaderLine.pointAnchor(building, { x: '50%', y: '50%' }), LeaderLine.pointAnchor(info, { x: '50%', y: 0 }), { startLabel: LeaderLine.captionLabel(`${price}/`, { fontFamily: 'Rubik Mono One', fontWeight: 400, offset: [-30, -50], outlineColor: '#555' }), color: '#fff', startPlug: 'arrow1', endPlug: 'behind', endSocket: 'top', hide: true } );
рдХреЛрдИ рднреА рдПрдХ рдЖрд▓реЗрдЦреАрдп рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╕рднреА рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реБрд╕рдВрдЧрдд рд╕рд╛рдордЧреНрд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐ рдкреВрдЫрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред
рд╣рдо рдЫрд┐рдкрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЭрд╛рдбрд╝реВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдЬрдм рдЖрдк рдЙрди рдЗрдорд╛рд░рддреЛрдВ рдкрд░ рдордВрдбрд░рд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ:
building.addEventListener('mouseover', () => { line.show(); }); building.addEventListener('mouseout', () => { line.hide(); });
рдпрд╣рд╛рдВ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд╕ рд╡рд╕реНрддреБ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐) рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓рдЧрднрдЧ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдб рдХреЗ рдХреБрдЫ рдкреИрдирд▓реЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдЖрдкрдХреЛ рд╣рд░ рдЪреАрдЬ рдХреЛ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдлреИрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
svg { width: 100%; height: 100%; }
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрд╕рд╡реАрдЬреА рддрддреНрд╡ рдХреЗ рдЕрдиреБрдкрд╛рдд рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдВрджрд░ рдХреА рдЫрд╡рд┐ рдХреЗ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗред рдХреНрдпрд╛ рдХрд░реЗрдВ?
рдмреЗрдореЗрд▓ рдЕрдиреБрдкрд╛рдд
рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ рдСрдмреНрдЬреЗрдХреНрдЯ-рдлрд┐рдЯ: CSS рд╕реЗ рдХрд╡рд░ рдкреНрд░реЙрдкрд░реНрдЯреАред рд▓реЗрдХрд┐рди рдПрдХ рдмрд┐рдВрджреБ рд╣реИ: рдпрд╣ рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпреЛрдЬрдирд╛ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдШрд░ рдпреЛрдЬрдирд╛ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрдЧрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдкрд╣рд▓рд╛ рдХрджрдоред рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд-рдЕрдиреБрдкрд╛рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рд╣рдж рддрдХ рдСрдмреНрдЬреЗрдХреНрдЯ-рдлрд┐рдЯ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ (рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди ...)ред рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдХреЗ рдореБрдЦреНрдп рдПрд╕рд╡реАрдЬреА рддрддреНрд╡ рдХреЗ рд▓рд┐рдП preserveAspectRatio="xMinYMin slice"
рдХрд░рдХреЗ, рд╣рдореЗрдВ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдмрд┐рдирд╛ рд╡рд┐рд░реВрдкрдг рдФрд░ рд╡рд┐рд░реВрдкрдг рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдорд┐рд▓рддрд╛ рд╣реИред
рдЪрд░рдг рджреЛ рдЖрдкрдХреЛ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдРрд╕рд╛ рдЕрд╡рд╕рд░ рд╣реИред рдпрд╣рд╛рдВ рдХрд╛рд░реНрдп рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдЦрд╛рд╕рдХрд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдПред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдЙрд╕ рдФрд░ рдЯрдЪрд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирдХреНрд╢реЗ рдХреЛ рдХрд┐рддрдирд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЖрдк рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕рдореЗрдВ рдлрдВрд╕ рд╕рдХрддреЗ рд╣реИрдВред Hammer.js рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрдПрдВрдЧреЗ - рдПрдХ рдФрд░ рдЫреЛрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдкреВрд░реА рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рдореЗрдЯ рд▓реЗрддреА рд╣реИ рдФрд░ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк, рд╕реНрд╡рд╛рдЗрдк рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рд╣рдореЗрдВ рд╕рднреА рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЗрдорд╛рд░рддреЛрдВ рдФрд░ рдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдкрд░рдд рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдПрдВ:
const buildingsLayer = map.querySelector('.buildings_layer'); const hammertime = new Hammer(buildingsLayer); hammertime.get('pan').set({ direction: Hammer.DIRECTION_ALL });
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╣рдереМрдбрд╝рд╛.рдЬреЗрдПрд╕ рдореЗрдВ svaypas рдХреА рдорд╛рдиреНрдпрддрд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдирдХреНрд╢реЗ рдкрд░ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдмрдВрдж рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд┐рд░ рдХреЛ рдореВрд░реНрдЦ рди рдХрд░реЗрдВ:
hammertime.get('swipe').set({ enable: false });
рдЕрдм рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдирдХреНрд╢реЗ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреНрдпрд╛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдирд╣реАрдВред рд╣рдорд╛рд░реЗ рд╕рд┐рд░ рдореЗрдВ рджреЛ рдЖрдпрддреЛрдВ рдХреЗ рдПрдХ рд╕рд░рд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд╛рд░реЛрдВ рддрд░рдл рд╕реЗ рдореВрд▓ рддрддреНрд╡ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ SVG) рд╕реЗ рдЗрдорд╛рд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рдд рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред GetBoundingClientRect рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ:
const layer = buildingsLayer.getBoundingClientRect(); const parent = svg.getBoundingClientRect(); const offsets = { top: layer.top - parent.top, bottom: layer.bottom - parent.bottom, right: layer.right - parent.right, left: layer.left - parent.left, };
рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рд╕рднреНрдп (рдФрд░ рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдп) рддрд░реАрдХрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? GetBoundingClientRect рдХреЛ рд╣рд░ рдмрд╛рд░ рдЦреАрдВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреБрдирд╛рд╡ рдмрд╣реБрдд рд╕рдореГрджреНрдз рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЕрд╡рд░реЛрдз рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдП рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдпрд╣ рд╣рдореЗрдВ рдЗрдорд╛рд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рдд рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:
let translateX = 0; let translateY = 0; hammertime.on('pan', (e) => { const layer = buildingsLayer.getBoundingClientRect(); const parent = svg.getBoundingClientRect(); const offsets = { top: layer.top - parent.top, bottom: layer.bottom - parent.bottom, right: layer.right - parent.right, left: layer.left - parent.left, }; const speedX = e.velocityX * 10; const speedY = e.velocityY * 10; if (speedX > 0 && offsets.left < 0) {
рдХрд┐рдирд╛рд░реЛрдВ рдкрд░, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдзреАрдорд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдЪрд╛рдирдХ рд░реБрдХрдиреЗ рдпрд╛ рдЭрдЯрдХреЗ рди рд╣реЛрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ:
if (speedX < -offsets.left) { translateX += speedX; } else { translateX += -offsets.left * speedX / 10; }
рдордВрджреА рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдФрд░ рд╣рд╛рдВ, рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдХреЙрд░реНрдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреВрдВрдЧрд╛ рд╣реИред рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдЖрдорддреМрд░ рдкрд░ рдХрд╛рд░реНрдб рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдВрдЦ рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЯреВрд▓ рдореЗрдВ рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ ...
рдЕрд╢реБрджреНрдз рд╢рдХреНрддрд┐рдпрд╛рдБ
рдбреЗрд╕реНрдХрдЯреЙрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЛрдмрд╛рдЗрд▓ рдкрд░, рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдирдХреНрд╢реЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╢рд░реАрд░ рддрддреНрд╡ рдЪрд▓рддрд╛ рд╣реИред рдК-рдК-рдК-рдК-uuuu! рдХреЗрд╡рд▓ рд╡рд╣рд╛рдБ рдХрд╛рд╕реНрдЯ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдпрджреНрдпрдкрд┐ рдареАрдХ рд╣реИ, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдХрд╣реАрдВ рдкрд░ рдмрд╣ рдирд┐рдХрд▓рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХреЛ рдУрд╡рд░рдлреНрд▓реЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЫрд┐рдкрд╛ рд╣реБрдЖред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред
рдЧреНрд░реАрди рдЯрд╛рдЗрдкрд╕реЗрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╣реЗрд▓реА: рдЗрд╕рдореЗрдВ g рддрддреНрд╡ рд╣реИ, svg рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░, div рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рдЕрдВрджрд░, рдмреЙрдбреА рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рдЕрдВрджрд░, html рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рдЕрдВрджрд░ред Doctype рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ HTMLред рдпрджрд┐ рдЖрдк рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ: g рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ рдбреНрд░реИрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯ (...) рдХрд░реЗрдВ, рддреЛ рд▓реИрдкрдЯреЙрдк рдкрд░ рд╡рд╣ рдЪрд▓ рдЬрд╛рдПрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлреЛрди рдкрд░ рдпрд╣ рднреА рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рдмрдЧ рдЬрд░реВрд░ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдВрддрд┐рдо рдХреНрд░реЛрдо рд╣реИ рд╡рд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рджреЛрдиреЛрдВред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ?
рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдк Google рдХреЗ рдмрд┐рдирд╛ 10 рдорд┐рдирдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред

рдЬрд╡рд╛рдм рд╣реИрд╣рд╛-рд╣рд╛! рдореИрдВрдиреЗ рддреБрдореНрд╣реЗрдВ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдРрд╕рд╛ рдирд╣реАрдВред рдореИрдВрдиреЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдЙрд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЯрдЪ-рдПрдХреНрд╢рди рдХреА рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ ред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ (рдЕрдЪрд╛рдирдХ!) рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рдкреВрд░реЗ рддрд░реНрдХ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмреЗрд░рд╣рдореА рд╕реЗ рдкреЗрд╢ рдЖрддреЗ рд╣реИрдВ:
svg { touch-action: none !important; }
рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рднреЗрдбрд╝реЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ (рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдЕрд▓рдЧ рдЯреИрдм рдореЗрдВ рдЦреЛрд▓реЗрдВ)
рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рдлреИрд╢рдиреЗрдмрд▓ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рддрдЯрд╕реНрде рдирд┐рд░рд╛рдХрд╛рд░ рд░рд┐рдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛ рд░рд╣реЗ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ?
рдХрд╛рдлреА рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдПрдХ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рдЬрд┐рд╕ рдкрд░ рдПрдХ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдЪрд┐рддреНрд░ рд╣реИ, рдЗрд╕рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рддреЗ рд╣реБрдП, рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рддреАрд░реЛрдВ рдФрд░ рдорд╛рдЙрд╕ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдмрддрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдХрд┐ рдпрд╣ рд╕рдм "рдмрдЬрдЯ" рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╡реЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рднреНрд░рдорд┐рдд рдбрд┐рдЬрд╛рдЗрди рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЙрди рдкрд░ рдмрд╣реБрдд рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдк рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреАрди рдЖрдпрд╛рдореА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ - рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдХреЗ рд▓рд┐рдП рддреАрди . js рдкрд░ рддреАрди рдЖрдпрд╛рдореА рдЙрддреНрдкрд╛рдж рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ ред