рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ 30,000px рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдЦрд╛рд▓реА рдЫрд╡рд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк резрежреж x резрежреж рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХ рд▓рдВрдмреЗ рд╢рд░реАрд░ рдкрд░ рддрддреНрд╡ рдХреА рдПрдХ рдЦрд╛рд▓реА рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИред
рдпрд╣рд╛рдВ рдПрдХ рдкрд╣реЗрд▓реА рд╣реИ рдЬреЛ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред
https://jsfiddle.net/fvo1xh8b/2/
рдЖрдк рд╢рд░реАрд░ рдХрд╛ рдЖрдХрд╛рд░ 30,000 рд╕реЗ рдХрдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рдЬреИрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ?
рдПрдореНрдо, рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛!
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдВ рд╣реИ:
рдЕрдкрдиреЗ рд╢рд░реАрд░ рдХреЗ рддрддреНрд╡ рдореЗрдВ рдПрдХ рдЖрдИрдлреНрд░реЗрдо рд▓рдЧрд╛рдПрдВ, рдЬреИрд╕реЗ
<html>
<head>
#canvas_handler {
position:absolute;
left: -10000px;
}
</head>
<body>
<iframe id="canvas_handler" />
</body>
</html>
рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдЫреБрдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣
const copy_ele = origin_ele.cloneNode(true);
canvas_handler.appendChild(copy_ele);
canvas_handler.style.height = origin_ele.scrollHeight;
canvas_handler.style.width = origin_ele.scrollWidth;
html2canvas(copy_ele, {
useCORS: true,
}).then((canvas) => {
// do your things
});
canvas_handler.removeChild(table_ele);
рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА v1.0.0 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ jsfiddle рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдкрдиреЗ рдЖрдк рдмрдВрдж рдХрд░ рджреА рдЧрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рд▓реЗрдЦрдХ рдХреА рдУрд░ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдХреЗрд╡рд▓ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдпрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЙрддреНрддрд░ рдЦреЛрдЬреЗрдВ рддрд╛рдХрд┐ рд╣рдо рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗрдВред
рд╣рд╛рдп рдЬрдм рдореИрдВ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдИрдлреНрд░реЗрдо рд╕реНрдХреНрд░реАрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдПрдХ рд╢реВрдиреНрдп рдЫрд╡рд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдХреНрдпрд╛ рдЖрдк рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@niklasvh рдпрд╣ рдПрдХ рдХрдард┐рди рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдЖрдХрд╛рд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рдлреЗрдж рдзреБрд▓реА рд╣реБрдИ рдЫрд╡рд┐ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдкреВрд░реЗ рд╢рд░реАрд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: html2canvas(el, {height: 3000, width: 3000})
ред
@toadkicker рднрд╛рдИ, рд▓реА рд╣реИ , рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
@toadkicker рдзрдиреНрдпрд╡рд╛рдж!
рдПрдореНрдо, рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛!
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдВ рд╣реИ:
рдЕрдкрдиреЗ рд╢рд░реАрд░ рдХреЗ рддрддреНрд╡ рдореЗрдВ рдПрдХ рдЖрдИрдлреНрд░реЗрдо рд▓рдЧрд╛рдПрдВ, рдЬреИрд╕реЗ<html> <head> #canvas_handler { position:absolute; left: -10000px; } </head> <body> <iframe id="canvas_handler" /> </body> </html>
рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдЫреБрдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣
const copy_ele = origin_ele.cloneNode(true); canvas_handler.appendChild(copy_ele); canvas_handler.style.height = origin_ele.scrollHeight; canvas_handler.style.width = origin_ele.scrollWidth; html2canvas(copy_ele, { useCORS: true, }).then((canvas) => { // do your things }); canvas_handler.removeChild(table_ele);
рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛:
const copy_ele = origin_ele.cloneNode(true);
canvas_handler.contentDocument.body.appendChild(copy_ele);
canvas_handler.height = origin_ele.scrollHeight;
canvas_handler.width = origin_ele.scrollWidth;
html2canvas(canvas_handler.contentDocument.body, {
useCORS: true,
}).then((canvas) => {
// do your things
canvas_handler.removeChild(copy_ele);
});
рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓реА рдХреЛ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╢реИрд▓реА рдХреЛ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
// add style
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'your_style_file_url.css';
canvas_handler.contentDocument.head.appendChild(link);
const copy_ele = origin_ele.cloneNode(true);
canvas_handler.contentDocument.body.appendChild(copy_ele);
canvas_handler.height = origin_ele.scrollHeight;
canvas_handler.width = origin_ele.scrollWidth;
html2canvas(canvas_handler.contentDocument.body, {
useCORS: true,
}).then((canvas) => {
// do your things
canvas_handler.removeChild(copy_ele);
});
рдлрд┐рд░ рд╕реЗ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реА рдПрдХ рд╕реАрдорд╛ рд╣реИ рдФрд░ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдХреЛрдбрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдЗрд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред
рдПрдореНрдо, рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛!
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдВ рд╣реИ:
рдЕрдкрдиреЗ рд╢рд░реАрд░ рдХреЗ рддрддреНрд╡ рдореЗрдВ рдПрдХ рдЖрдИрдлреНрд░реЗрдо рд▓рдЧрд╛рдПрдВ, рдЬреИрд╕реЗ<html> <head> #canvas_handler { position:absolute; left: -10000px; } </head> <body> <iframe id="canvas_handler" /> </body> </html>
рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдЫреБрдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣
const copy_ele = origin_ele.cloneNode(true); canvas_handler.appendChild(copy_ele); canvas_handler.style.height = origin_ele.scrollHeight; canvas_handler.style.width = origin_ele.scrollWidth; html2canvas(copy_ele, { useCORS: true, }).then((canvas) => { // do your things }); canvas_handler.removeChild(table_ele);
рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛:
const copy_ele = origin_ele.cloneNode(true); canvas_handler.contentDocument.body.appendChild(copy_ele); canvas_handler.height = origin_ele.scrollHeight; canvas_handler.width = origin_ele.scrollWidth; html2canvas(canvas_handler.contentDocument.body, { useCORS: true, }).then((canvas) => { // do your things canvas_handler.removeChild(copy_ele); });
рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓реА рдХреЛ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╢реИрд▓реА рдХреЛ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
// add style const link = document.createElement('link'); link.rel = 'stylesheet'; link.href = 'your_style_file_url.css'; canvas_handler.contentDocument.head.appendChild(link); const copy_ele = origin_ele.cloneNode(true); canvas_handler.contentDocument.body.appendChild(copy_ele); canvas_handler.height = origin_ele.scrollHeight; canvas_handler.width = origin_ele.scrollWidth; html2canvas(canvas_handler.contentDocument.body, { useCORS: true, }).then((canvas) => { // do your things canvas_handler.removeChild(copy_ele); });
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рддрддреНрд╡ svg рдпрд╛ рдЗрдирд▓рд╛рдЗрди рд╢реИрд▓реА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдЬреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП
рдореБрдЭреЗ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИред рдореБрдЭреЗ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ (рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде) рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдлреЗрдж рдЫрд╡рд┐ рдорд┐рд▓реАред рд╕рдорд╕реНрдпрд╛ рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдереАред рдпрд╣ рдХреЛрдб рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
const el = document.getElementById('html-to-canvas-area')
const area = el.getBoundingClientRect()
html2canvas(el, {
scrollX: 0,
scrollY: 0,
width: area.width,
height: area.height
})
рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛! рдЪрддреБрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
@invisor рд▓рд╛рдЗрдлрд╕реЗрд╡рд░ ! рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рдпреЗ рд╡рд┐рдХрд▓реНрдк рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
{
scrollX: 0,
scrollY: -window.scrollY
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@niklasvh рдпрд╣ рдПрдХ рдХрдард┐рди рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдЖрдХрд╛рд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рдлреЗрдж рдзреБрд▓реА рд╣реБрдИ рдЫрд╡рд┐ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдкреВрд░реЗ рд╢рд░реАрд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
html2canvas(el, {height: 3000, width: 3000})
ред