Html2canvas: рдПрд╕рд╡реАрдЬреА рдУрд╡рд░рд▓реИрдк рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдЯреИрдЧ (рдбреБрдкреНрд▓рд┐рдХреЗрдЯ / рдбрдмрд▓рд┐рдВрдЧ)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдлрд╝рд░ре░ 2015  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: niklasvh/html2canvas

(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реВрдБ)

рдирдорд╕реНрддреЗ,
рдореИрдВ рдПрд╕рд╡реАрдЬреА рдЯреИрдЧ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рднрдпрд╛рдирдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдЬрдм рдореИрдВ рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдЯреИрдЧ рдХреЛ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХреБрдЫ рдЯреЗрдХреНрд╕реНрдЯ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ
рдЯреЗрдХреНрд╕реНрдЯ рдЯреИрдЧ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдФрд░ рдПрд╕рд╡реАрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
2015-02-19 15 08 29_2
рдпрд╣рд╛рдВ рдирдореВрдирд╛ рдХреЛрдб рд╣реИ (html2canvas 0.5.0-alpha2 рдХреЗ рд╕рд╛рде)

<html>
<head>
  <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
  <script type="text/javascript" src="js/html2canvas.js"></script>
</head>
<body>
  <svg width="100" height="100">
    <g transform="translate(20,20)">
      <text dy=".45em" y="10" x="0" dx="-.8em" transform="translate(0,0) rotate(-70)" style="font-size:12px;">Text</text>
    </g>
  </svg>
  <script>
    $(document).ready(function() {
      html2canvas(document.body, {
        onrendered: function(canvas) {
          document.body.appendChild(canvas);
        }
      });
    })
  </script>
</body>
</html

рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░рд╛ рддреНрд╡рд░рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ

NodeParser.prototype.getChildren = function(parentContainer) {
    return flatten([].filter.call(parentContainer.node.childNodes, renderableNode).map(function(node) {
        var container = [node.nodeType === Node.TEXT_NODE && node.parentElement.tagName !== "text" ? new TextContainer(node, parentContainer) : new NodeContainer(node, parentContainer)].filter(nonIgnoredElement);
        return node.nodeType === Node.ELEMENT_NODE && container.length && node.tagName !== "TEXTAREA" ? (container[0].isElementVisible() ? container.concat(this.getChildren(container[0])) : []) : container;
    }, this));
};

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреА

Needs More Information

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@рд╣реНрдпреЛрдЬрд┐рди
рдЖрдИрдИ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рдлрд┐рдХреНрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ parentElement рд╕рдВрдкрддреНрддрд┐ рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдкрд░ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп parentNode рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ! рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо NodeParser рдФрд░ рдпрд╣ рдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдиреНрдпрдерд╛, рдЯреИрдЧ рдирд╛рдо рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ parentNode рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ TextContainer рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдкреИрд░реЗрдВрдЯ рдиреЛрдб SVGElement .

рдпрд╣ рдХреНрд░реЛрдо рдФрд░ рдпрд╛рдиреА 11 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкрд░ рдореИрдВ рд░рд┐рдХреНрдд рдХреИрдирд╡рд╛рд╕ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛!

рдореЗрд░рд╛ рдХреЛрдб

NodeParser.prototype.getChildren = function(parentContainer) {
    return flatten([].filter.call(parentContainer.node.childNodes, renderableNode).map(function(node) {
        var container = [node.nodeType === Node.TEXT_NODE && !(node.parentNode instanceof SVGElement) ? new TextContainer(node, parentContainer) : new NodeContainer(node, parentContainer)].filter(nonIgnoredElement);
        return node.nodeType === Node.ELEMENT_NODE && container.length && node.tagName !== "TEXTAREA" ? (container[0].isElementVisible() ? container.concat(this.getChildren(container[0])) : []) : container;
    }, this));
};

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпреЗ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдзрдиреНрдпрд╡рд╛рдж#рд╣реНрдпреЛрдЬрд┐рдиред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░реА рдмрд╣реБрдд рдорджрдж рдХрд░реЛ!

рдЖрдкрдХреЗ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЖрдк tspan рдЯреИрдЧрдирд╛рдо рдкрд░ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
node.nodeType === Node.TEXT_NODE && node.parentElement.tagName !== "text" && node.parentElement.tagName !== "tspan"

@ncoquelet рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж!

@рд╣реНрдпреЛрдЬрд┐рди
рдЖрдИрдИ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рдлрд┐рдХреНрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ parentElement рд╕рдВрдкрддреНрддрд┐ рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдкрд░ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп parentNode рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ! рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо NodeParser рдФрд░ рдпрд╣ рдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдиреНрдпрдерд╛, рдЯреИрдЧ рдирд╛рдо рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ parentNode рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ TextContainer рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдкреИрд░реЗрдВрдЯ рдиреЛрдб SVGElement .

рдпрд╣ рдХреНрд░реЛрдо рдФрд░ рдпрд╛рдиреА 11 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкрд░ рдореИрдВ рд░рд┐рдХреНрдд рдХреИрдирд╡рд╛рд╕ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛!

рдореЗрд░рд╛ рдХреЛрдб

NodeParser.prototype.getChildren = function(parentContainer) {
    return flatten([].filter.call(parentContainer.node.childNodes, renderableNode).map(function(node) {
        var container = [node.nodeType === Node.TEXT_NODE && !(node.parentNode instanceof SVGElement) ? new TextContainer(node, parentContainer) : new NodeContainer(node, parentContainer)].filter(nonIgnoredElement);
        return node.nodeType === Node.ELEMENT_NODE && container.length && node.tagName !== "TEXTAREA" ? (container[0].isElementVisible() ? container.concat(this.getChildren(container[0])) : []) : container;
    }, this));
};

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпреЗ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред

рдореЗрд░реА рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ, рдПрдлрдПрдл рдкрд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :-)

рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ!
рдореИрдВрдиреЗ рдпрд╣ рднреА рдЬрд╛рдВрдЪрд╛ рдХрд┐ рдпрд╣ ff рдкрд░ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЖрдкрдХрд╛ рдлрд┐рдХреНрд╕ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж :)

@hyojin @ncoquelet рдЗрд╕ рдФрд░ рдлрд┐рдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рджреВрд╕рд░реЗ рджрд┐рди рдареАрдХ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рдерд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдХрд╣рд╛рдВ рднреНрд░рдорд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдкрд╡рд╛рдж рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ "рдЕрдирдХреЙрдЯ рд░реЗрдлрд░реЗрдВрд╕ рдПрд░рд░: рдиреЛрдбрдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ"

@ рд╕реБрдЪреЗрддрдирд╛10 рдЖрдкрдХреЛ рдЕрдкрд╡рд╛рдж рдХрдм рдорд┐рд▓рд╛? рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ?

@hyojin рдзрдиреНрдпрд╡рд╛рдж .. рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛

@ рд╣реНрдпреЛрдЬрд┐рди рдзрдиреНрдпрд╡рд╛рдж! рдореЗрд░реЗ рд▓рд┐рдП рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

Happyvishwasvadavi ugnugen рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ! :)

рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрднреА рднреА рдЯреЗрдХреНрд╕реНрдЯ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдкреАрдЖрд░ рднреЗрдЬреВрдВрдЧрд╛ред

image

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдкреЗрдЬ рдкрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ ..

рдХреНрдпрд╛ рдпрд╣ рдмрд┐рд▓реНрдб рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИ? рдореИрдВ рдЕрднреА рднреА рд╣рд╛рдИрдЪрд╛рд░реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдлрд┐рдХреНрд╕ рдмрд┐рд▓реНрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рд╣рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдмрдирд╛рдирд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА v1.0.0 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ jsfiddle рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдкрдиреЗ рдЖрдк рдмрдВрдж рдХрд░ рджреА рдЧрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рд▓реЗрдЦрдХ рдХреА рдУрд░ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдХреЗрд╡рд▓ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдпрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЙрддреНрддрд░ рдЦреЛрдЬреЗрдВ рддрд╛рдХрд┐ рд╣рдо рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗрдВред

рдкреНрд░рд┐рдп @niklasvh ,

рдЗрд╕ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг - v1.0.0-rc.3 рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ

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

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг -

  1. рдХреГрдкрдпрд╛ рдХреЛрдбрдкреЗрди рд▓рд┐рдВрдХ рдЦреЛрд▓реЗрдВ - https://codepen.io/karannagupta/pen/RXpddB рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рдореЗрдВ
  2. рдХреЙрдкреА рдЯреВ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
  3. рдПрдирд┐рдореЗрд╢рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ (рдпрд╛ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рджреЗрдЦреЗрдВ)
  4. рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдкреЗрдВрдЯ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЪрд┐рдкрдХрд╛рдПрдБ (ctrl + v)

рд░реЗрдЦрд╛#193 . рдкрд░ рдЧреНрд░рд╛рдлрд╝ рд╢реАрд░реНрд╖рдХ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ

@hyojin , рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВрдЧреЗ?

рд╕рд╛рджрд░,
рдХрд░рдг



text-duplication

рдирдорд╕реНрддреЗ @karannagupta
рдХреНрдпрд╛ рдЖрдк рдореЗрд░реА рд╢рд╛рдЦрд╛ рдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрддрд╛ рд╣реИ?

рдирдорд╕реНрддреЗ @hyojin

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде (v0.5.0-alpha2) рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдореЗрд░реА рдкреЗрди рдкрд░ рдЕрдкрдиреА рд╣реИрдВ

рд╕рд╛рде рд╣реА, рдореИрдВ html2canvas рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореБрдЭреЗ рддрдм html2canvas.svg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рд╛рджрд░,
рдХрд░рдг

рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдпреВрдирд┐рдХреЛрдб рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ

image

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

diego-rey picture diego-rey  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

anthonymejia picture anthonymejia  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Loki180 picture Loki180  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rrutkows picture rrutkows  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tjchambers32 picture tjchambers32  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ