Html2canvas: Element-Styling nur für html2canvas?

Erstellt am 19. Okt. 2015  ·  5Kommentare  ·  Quelle: niklasvh/html2canvas

Ich verwende das praktische data-html2canvas-ignore -Tag für einige Elemente, aber Firefox gibt mir Probleme mit Elementen mit negativen Rändern. Ich möchte in der Lage sein, ein Nur-HTML2canvas-Stil-Tag für ein bestimmtes Element hinzuzufügen, z. B.: data-html2canvas-style="margin-left: 0" .

Hat jemand anderes Glück gehabt, so etwas zu tun?

Question

Hilfreichster Kommentar

Sie können den Inhalt des Dokuments (das ein Klon des Originals ist) ändern, das mit der Option onclone gerendert wird. Beispiel:

html2canvas(document.body, {onclone: function(document) {
  document.querySelector('.something').style.marginLeft = 0;
}}).then(...)

Alle 5 Kommentare

Sie können den Inhalt des Dokuments (das ein Klon des Originals ist) ändern, das mit der Option onclone gerendert wird. Beispiel:

html2canvas(document.body, {onclone: function(document) {
  document.querySelector('.something').style.marginLeft = 0;
}}).then(...)

Danke Nik! Schätzen Sie Ihre Arbeit an dieser Bibliothek sehr. Ist das in der Dokumentation?

Nein, leider nicht. Die Dokumentation fehlt im Moment in vielerlei Hinsicht ...

Mein heruntergeladenes Bild erhält nicht das richtige Styling, daher verwende ich Computed-Style-to-Inline-Style , um es richtig zu rendern, indem ich das gesamte Styling in Inline-CSS konvertiere. Aber das Problem dabei ist, dass es den ursprünglichen Dom betrifft. Ich möchte es also für das geklonte Element tun, stattdessen innerhalb der Onclone-Funktion, aber es funktioniert nicht und das Bild ist nicht richtig gestaltet. Irgendeine Idee, warum es passiert?

Ich habe versucht, dasselbe zu tun. Hier ist, wie ich es implementiert habe und alle meine Stile wurden ordnungsgemäß heruntergeladen:

const computedStyleToInlineStyle = require("computed-style-to-inline-style");

 html2canvas(document.querySelector(".someclass"), {onclone: function(document) {
     computedStyleToInlineStyle(document.querySelector(".someclass"), {
          recursive: true
      });
    }}).then(canvas => {
        const imgData = canvas.toDataURL('image/png');
        ...
    });
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen