рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ css . рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд▓реЗрдХреНрд╕ рдХрдВрдЯреЗрдирд░ рд╣реИ
рдкреНрд░рджрд░реНрд╢рди: рдлреНрд▓реЗрдХреНрд╕;
рдлреНрд▓реЗрдХреНрд╕-рджрд┐рд╢рд╛: рдкрдВрдХреНрддрд┐;
рдФрд░ 4 рдмрдЪреНрдЪреЗ
рдлреНрд▓реЗрдХреНрд╕-рдЧреНрд░реЛ: 1;
рдлреНрд▓реЗрдХреНрд╕- рдЖрдзрд╛рд░: 25%;
рдЖрдк 4 рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЖрдХрд╛рд░ рдХрд╛ 25% рдкреИрд░реЗрдВрдЯ рдХрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
25% рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 4 рдЖрдЗрдЯрдо (рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░)
рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ 3 рдЖрдЗрдЯрдо рдФрд░ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ 100% рдЖрдЗрдЯрдоред
рдЗрд╕рдХреЗ рдЕрдВрджрд░ 100% рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде 4 рдкрдВрдХреНрддрд┐рдпрд╛рдБред
http://jsfiddle.net/xLz8tcrc/1/
рдХреНрд░реЛрдо
рдлрд╝рд╛рдпрд░реНрдлрд╝реЙрдХреНрд╕
рдЖрдкрдХреЗ рдбреЗрдореЛ рдореЗрдВ, рдореИрдВрдиреЗ рдлреНрд▓реЗрдХреНрд╕ рдмреЙрдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж chart.reflow()
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝рд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ _window_ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдЪрд╛рд░реНрдЯ рдХреЗрд╡рд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реАрдлрд╝реНрд▓реЛ рд╣реЛрддреЗ рд╣реИрдВред
рд╕рд╛рде рд╣реА, рдЪрд╛рд░реНрдЯ рдХрдВрдЯреЗрдирд░ рдореЗрдВ overflow: hidden
рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдЪрд╛рд░реНрдЯ рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдЪреМрдбрд╝рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ? http://jsfiddle.net/xLz8tcrc/2/
рдЖрдкрдХреЗ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЪрд╛рд░реНрдЯ.рд░реЗрдлрд╝реНрд▓реЛ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрджрд┐ HighCharts рдореВрд▓ рддрддреНрд╡ рдХреЗ CSS рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдареАрдХ рд╕реЗ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдЧрд╛ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЪрд╛рд░реНрдЯ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдпрд╛ рдореВрд▓ рддрддреНрд╡ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ, рдЗрд╕рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдЪрд╛рд░реНрдЯ.рд░реЗрдлреНрд▓реЛ() рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реИ, рдмрд╕ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдореВрд▓ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдпреЛрдЧреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЪрд╛рд░реНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░, рдЬреЛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЯрд┐рдХрдЯ рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реЛрдВред
рдЖрдк рдЬреЛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реАрдлрд╝реНрд▓реЛ рдХрд░рддреЗ рд╣реИрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рддрддреНрд╡ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реАрдлреНрд▓реЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреАрдУрдПрдо рддрддреНрд╡ рдЖрдХрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП http://stackoverflow.com/questions/6492683/how-to-detect-divs-dimension-changed рджреЗрдЦреЗрдВ, рдФрд░ рдЗрд╕реА рд╡рд┐рд╖рдп рдкрд░ рдкрд╣рд▓реЗ рднреА рдЗрд╕ рдордВрдЪ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдереНрд░реЗрдб рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд╕рдВрднрд╡ рддрд░реАрдХрд╛ setTimeout
рдпрд╛ requestAnimationFrame
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ CPU рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдкрдиреЗ StackOverflow рдкреЛрд╕реНрдЯ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд ResizeSensor рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рд╣реИ (https://github.com/marcj/css-element-queries)? рдпрд╣ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреАрдУрдПрдо рддрддреНрд╡реЛрдВ рдФрд░ scroll
рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ requestAnimationFrame
рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдИрд╡реЗрдВрдЯ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ (рдЕрдзрд┐рдХрддрдо 1 рдкреНрд░рддрд┐ рдлреНрд░реЗрдо)ред
http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/ рднреА рд╣реИ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ object
рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рд╕рдВрдпреЛрдЧ рд╕реЗ рдПрдХ resize
рдШрдЯрдирд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЙрд╕рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ ResizeObserver
рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред https://github.com/WICG/ResizeObserver/issues/3 рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдкреЙрд▓реАрдлрд┐рд▓ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ MutationObeserver
рдФрд░ рдорддрджрд╛рди рдпрд╛ рдЕрдиреНрдп рдмреЗрдХрд╛рд░ рддрд░реАрдХреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рддрд░рдХреАрдмреЛрдВ рдХреЛ рдХреЛрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╢реНрд░реЛрддрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ chart.reflow
рд╣реБрдХ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░ рд╕рдХреЗрдВ, рдЬрдм рдХреЛрдИ рддрддреНрд╡ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдиреЗ рдЙрдкрд░реЛрдХреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ chart.reflow
ред
+1 рд╣рдордиреЗ рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдорд╛рд░рд╛ рд╣реИ, рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдлреНрд▓реЗрдХреНрд╕рдмреЙрдХреНрд╕ рдереАред
рдлреНрд▓реЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ ... рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдХрднреА рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЧрдВрджрдЧреА
рдбрд┐рд╕реНрдкреНрд▓реЗ рдЗрдирд▓рд╛рдЗрди рдмреНрд▓реЙрдХ рдХрд╣реАрдВ рдмреЗрд╣рддрд░ рд╣реИ
рдлреНрд▓реЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ ... рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдХрднреА рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЧрдВрджрдЧреА
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдЙрдкрд╛рдп рд╣реИред
рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕ @TorsteinHonsi рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?
рдореИрдВ рдХреЛрдгреАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рднреА рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИред
рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╡рд╣ рдЪрд╛рд░реНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ SVG
ред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╢рдд-рдкреНрд░рддрд┐рд╢рдд рдЖрдХрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рдХреНрдХрдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реАрдзреЗ svg рдкрд░ рд╕реЗрдЯ рд╣реИред
рд╣рд╛рдп @ рдЬреЙрд░реНрдЬ рдХрдиреНрдиреИрдк
рдХреНрдпрд╛ рдЖрдк рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдФрд░ рдЧреИрд░-рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рд╢рд╛рд░реНрдк рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛?
@KacperMadej
рдареАрдХ рд╣реИ, svg рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрд╕рд╡реАрдЬреА рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЛ 100% рдХрд░рдиреЗ рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд░ рдХреЛрдИ рдмреБрд░рд╛ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВред
рдореИрдВ рдЖрдВрддрд░рд┐рдХ svg
рддрддреНрд╡ рдЪреМрдбрд╝рд╛рдИ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
highcharts-chart::ng-deep {
.highcharts-container,
.highcharts-container svg {
width: 100% !important;
height: 100% !important;
}
}
рдпрд╣ рдЕрдм рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдПрд╕рд╡реАрдЬреА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдзреБрдВрдзрд▓рд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдЦреЛ рд╕рдХрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдореБрджреНрджрд╛ рд▓реАрдЧреЗрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ (рдпрд╣ рдЕрд╡рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдЪрд┐рдд рдкреЙрд▓реАрдлрд╝рд┐рд▓ рд╣реИ)ред
рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдПрдХ рдЧрд╣рд░рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдФрд░ рддреАрди рдореБрджреНрджреЛрдВ рдХреЛ рдкрд╛рдпрд╛ рд╣реИ:
рдХрдВрдЯреЗрдирд░ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╕рдордп, рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ scrollWidth
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪреМрдбрд╝рд╛рдИ рдЙрдк рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЛрдиреЗ рдкрд░ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореВрд▓ рдлрд┐рдбреЗрд▓ рдореЗрдВ, рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдПрдХ рдЕрдВрд╢ рдмрд╣реБрдд рдЪреМрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлреНрд▓реЗрдХреНрд╕ рд▓реЗрдЖрдЙрдЯ 4 рдХреЙрд▓рдо рд╕реЗ 3 рдХреЙрд▓рдо рддрдХ рдХреВрджрддрд╛ рд╣реИред рдпрд╣ Math.floor
рдФрд░ element.getBoundingClientRect
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреГрд╖реНрда рдпрд╛ рдХрдВрдЯреЗрдирд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЛ рдХрдо рдХрд░рддреЗ рд╕рдордп, рдЪрд╛рд░реНрдЯ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ 25% рд╕реЗ рдЕрдзрд┐рдХ рдЪреМрдбрд╝реЗ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рд▓реЗрдЖрдЙрдЯ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЪрд╛рд░реНрдЯ рдХрдВрдЯреЗрдирд░ рдореЗрдВ overflow:hidden
рдЬреЛрдбрд╝рдХрд░ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ _рдмрд┐рдирд╛_рдлреНрд▓реЗрдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдХреЛ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╕рдордп, рдЪрд╛рд░реНрдЯ рд╕реНрдХреЗрд▓ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рд╡реЗ рдЕрднреА рднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЕрдм рд╡реЗ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдВрдЧреЗред @GeorgeKnap рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрдкрд░ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдзреБрдВрдзрд▓реЗ рдЪрд╛рд░реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдпрд╣ рдКрдВрдЪрд╛рдИ рдХрд╛ рдЖрдХрд╛рд░ рднреА рдмрджрд▓реЗрдЧрд╛, рдпрд╣ рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдЖрджрд┐ рдХрд╛ рдЕрдирд╛рджрд░ рдХрд░реЗрдЧрд╛ред рджреЗрдЦреЗрдВ http://jsfiddle.net/highcharts/xLz8tcrc/219 / рдФрд░ рд╕реНрдкрд╖реНрдЯ chart.reflow
рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕реЗрдЯрдЕрдк: http://jsfiddle.net/highcharts/xLz8tcrc/221/ред рд╡рд╛рдВрдЫрд┐рдд рд╕рдорд╛рдзрд╛рди рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рдХрдВрдЯреЗрдирд░ div рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдХреА ResizeObserver
рдПрдХрдорд╛рддреНрд░ рдореВрд▓ рдРрд╕реА рдШрдЯрдирд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реЗ рд╕реАрдПрд╕рдПрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рд╕рдорд╛рдзрд╛рди рдиреЗ рдорд╛рдЙрд╕ рдУрд╡рд░ (рдЯреВрд▓рдЯрд┐рдк) рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХреАрдВред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ CSS рдУрд╡рд░рд░рд╛рдЗрдб рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ ResizeObserver
рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ред рдпрд╣ рдореВрд▓ рддрддреНрд╡ рдкрд░ рдЖрдХрд╛рд░ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдЪрд╛рд░реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реАрдзреЗ width
рдФрд░ height
рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ:
рдпрд╣ рдХреЛрдгреАрдп рд╕рдорд╛рдзрд╛рди рд╣реИ рдЗрд╕рд▓рд┐рдП рдореВрд▓ DOM рддрддреНрд╡ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ElementRef
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЬрд╛рдВрдЪ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ChangeDetectorRef
рдЬрд╛рддрд╛ рд╣реИ:
const resizeObserver = new ResizeObserver(debounce((data: Array<ResizeObserverEntry>) => {
if (this.chartOptions) {
const options = { ...this.chartOptions } as Highcharts.Options;
options.chart!.height = data[0].contentRect.height;
options.chart!.width = data[0].contentRect.width;
this.chartOptions = options;
this.cd.markForCheck();
}
}, 200));
resizeObserver.observe(this.elementRef.nativeElement.children[0]);
рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣рд╛рдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ chart.reflow
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд window.onresize
рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрдирдмрд╛рдЗрдВрдб рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ ResizeObserver
рд╕рдорд░реНрдерд┐рдд рд╣реИ:
// Generic plugin that adds support for listening to container resize rather than
// window resize. As of 2018 only Chrome supports ResizeObserver.
Highcharts.wrap(Highcharts.Chart.prototype, 'setReflow', function(proceed, reflow) {
var chart = this;
proceed.call(this, reflow);
if (reflow !== false && typeof ResizeObserver === 'function') {
// Unbind window.onresize handler so we don't do double redraws
if (this.unbindReflow) {
this.unbindReflow();
}
var ro = new ResizeObserver(function () {
chart.reflow();
});
ro.observe(this.renderTo);
}
});
рдЗрд╕реЗ jsFiddle рдкрд░ рд▓рд╛рдЗрд╡ рджреЗрдЦреЗрдВред
рдирдорд╕реНрддреЗ,
рдореИрдВ рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ, рдЙрди рд╕рдВрд▓рдЧреНрди рд╕реНрдХреНрд░реАрди рд╢реЙрдЯреНрд╕ рдореЗрдВ, рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд╛рд░реНрдЯ рдХрдВрдЯреЗрдирд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдкреГрд╖реНрда рдореЗрдВ рдХрдИ рдЪрд╛рд░реНрдЯ рд╣реИрдВ рдЬреЛ рддрдм рдЦреБрд▓рддреЗ рд╣реИрдВ рдЬрдм рдореИрдВ рдЕрдХреЙрд░реНрдбрд┐рдпрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рдкрд░, рдЪрд╛рд░реНрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдЗрд╕рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред
рдХреНрдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?
рдиреАрдЪреЗ рдЕрдХреЙрд░реНрдбрд┐рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдб рд╣реИред
рд╕рдорд╛рд░реЛрд╣ initsectionрдХреНрд▓рд┐рдХ (рдХрдВрдЯреЗрдирд░) {
$('.fe-section-accordion-header', рдХрдВрдЯреЗрдирд░)ред рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдлрд╝рдВрдХреНрд╢рди () {
рд╡рд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрдВрдЯреЗрдирд░ = $ (рдпрд╣)ред рдорд╛рддрд╛-рдкрд┐рддрд╛ ();
var accordioncontainer = $(parentcontainer).find('.fe-section-accordion-container');
if (accordioncontainer != null)
{
var accordioncontainerOpen = accordioncontainer.is(':visible');
accordioncontainer[accordioncontainerOpen ? 'slideUp' : 'slideDown'](400, "swing", function() {
ToolkitUI.Common.ResizeIFrame();
var highChartsWrapper = $('.fe-section-chart-wrap', accordioncontainer);
if (highChartsWrapper.length) {
$.each(highChartsWrapper,
function(index, obj) {
var hcObj = $(obj).highcharts();
if (hcObj)
hcObj.reflow();
});
}
});
if (!accordioncontainerOpen)
{
$(accordioncontainer).ShowLoadingInsideContainer();
}
$(parentcontainer).find('.fe-expandcollapse').toggleClass("fe-icon-expand", accordioncontainerOpen).toggleClass("fe-icon-collapse", !accordioncontainerOpen);
$('.fe-section-accordion-header', parentcontainer).toggleClass('highlight', !accordioncontainerOpen);
}
$(window).resize();
});
//we have to unbind any click event handlers before attaching a new one, as without unbind we will be attaching the same handler multiple times.
//this is because we are binding the data from the start for each tab when it is clicked, which rebinds the same method again and again.
$('.fe-accordion-expandcollapse-all', container).unbind('click').click(function () {
var isallopen = $(this).hasClass('fe-accordion-collapse');
var counter = 1;
$(this).toggleClass('fe-accordion-expand', isallopen).toggleClass('fe-accordion-collapse', !isallopen);
$('.fe-expandcollapse', container).toggleClass('fe-icon-expand', isallopen).toggleClass('fe-icon-collapse', !isallopen);
$('.fe-section-accordion-header', container).toggleClass('highlight', !isallopen);
$('.fe-section-accordion-container')[isallopen ? 'slideUp' : 'slideDown'](400, "swing", function () {
if (counter == $('.fe-section-accordion-container').length) {
ToolkitUI.Common.ResizeIFrame();
}
counter++;
});
if (!isallopen)
{
$('.fe-section-accordion-container').ShowLoadingInsideContainer();
}
$(window).resize();
});
};
@ рдирд╛рдЧрд░рд╛рдЬ2106
рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рдЬреЛрдбрд╝реЗрдВ, рддрд╛рдХрд┐ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХреЗрдВ, рдЗрд╕реЗ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдФрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗрдВред рд╕рд╛рде рд╣реА, рдХреГрдкрдпрд╛ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ: https://github.com/highcharts/highcharts/issues/6427#issuecomment -438212322
рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рди рддреЛ рд░реАрдлреНрд▓реЛ() рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рди рд╣реА рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ; рд╣рд╛рд▓рд╛рдБрдХрд┐ SO рдХреЗ рдЗрд╕ рдЙрддреНрддрд░ рдиреЗ рдХрд┐рдпрд╛ред
рдореИрдВ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк 4 рдлреНрд▓реЗрдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЪрд╛рд░реНрдЯ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ (рд╡реНрдпрд╛рдкрдХ) рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдореИрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреВрд░реНрдг рдирд╣реАрдВ рдмрдирд╛ рджреЗрддрд╛ рддрдм рддрдХ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рдирд╣реАрдВ рд╣реИ:
<div id="chart-container">
<div id="chart"></div>
</div>
рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде:
#chart-container {
position: relative;
width: 100%;
height: 280px;
}
#chart {
position: absolute;
width: 100%;
}
рдореИрдВрдиреЗ рдЪрд╛рд░реНрдЯ рдХреЛ renderTo: 'chart'
рд╕рд╛рде #chart рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@KacperMadej
рдареАрдХ рд╣реИ, svg рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрд╕рд╡реАрдЬреА рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЛ 100% рдХрд░рдиреЗ рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд░ рдХреЛрдИ рдмреБрд░рд╛ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВред
рдореИрдВ рдЖрдВрддрд░рд┐рдХ
svg
рддрддреНрд╡ рдЪреМрдбрд╝рд╛рдИ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:рдпрд╣ рдЕрдм рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред