κ²°κ³Ό μ΄λ―Έμ§ ν¬κΈ°λ μ€λ²νλ‘λ λ΄μ©μ ν¬ν¨νμ¬ λͺ¨λ μ°½ λ΄μ©λ§νΌ 컀 보μ΄μ§λ§ μ€μ λ‘λ λ·°ν¬νΈμμλ§ λ³Ό μ μμ΅λλ€.
μ΄κ²μ λ΄κ° μ κ±°ν μ μλ λͺ¨λ κ²μμ μ€λ²νλ‘λ₯Ό μ κ±°νλ κ²μ λλ€. λ°λΌμ μ΄κ²μ λ°©ν΄νλ CSSλ μμ΅λλ€. μ΄λ―Έμ§μ ν¬ν¨λ λ·°ν¬νΈ μΈλΆμ μλ μ½ν μΈ λ₯Ό κ°μ Έμ¬ μ μλμ? νμ΄μ§λ₯Ό μλλ‘ μ€ν¬λ‘€ν λ€μ λ€μ μλνλλΌλ κ²°κ³Όλ μ€ν¬λ‘€λ λ·°ν¬νΈμ μλ λ΄μ©μ μ ννμ§ μκ³ λμ μ€ν¬λ‘€ λμ΄ 0μ μλ λ·°ν¬νΈμ μλ λ΄μ©μ ν¬ν¨νλ€λ κ²μ μμμ΅λλ€.
μ΄μ©μ§ ννμ΄μ§μ μλ μλ¬Έμμλ μ보μ΄λ κ²κΉμ§ λͺΈμ λ€ λ³΄μ¬μ£Όλ€μ... μ΄λ»κ² νκ±°μ£ ?
κ°λ₯ν μ€λ³΅: https://github.com/niklasvh/html2canvas/issues/117
οΌνΉμ μμλ₯Ό μΊ‘μ²νλ λ°©λ²μ μκ³ μΆμ΅λλ€. λꡬμκ² ν΄κ²°μ± μ΄ μμ΅λκΉ?
@justein μ΄κ²μ μλνμμμ€
<div id="test-case">Test-me</div>
html2canvas(document.getElementById("test-case")).then(function(canvas) {
document.body.appendChild(canvas);
});
μ΅μ λ²μ μμ μ΄ λμμ νμΈν μ μμ΅λλ€. μμ²ν κ°μ²΄μ μ¬λ°λ₯Έ ν¬κΈ°λ₯Ό λ λλ§νμ§λ§ μ€μ λ‘ νμ¬ λ·°ν¬νΈμ νλ©΄ λ°μ μλ κ²μ μΊλ²μ€μ λ λλ§νμ§ μμ΅λλ€. κ·Έλμ λ§μ½
<div id="test-case">Test-me</div>
νμ¬ λΈλΌμ°μ μ νμλμ΄ μμΌλ©΄ λ λλ§λ©λλ€. νλ©΄ λ°μ μλ κ²½μ° μΊλ²μ€λ λΉμ΄ μμ΅λλ€(κ·Έλ¬λ μ¬λ°λ₯Έ ν¬κΈ°μ). λΆλΆμ μΌλ‘ νμλ¨: λΆλΆμ μΌλ‘ λ λλ§λ©λλ€. κ΄μ°μ scrollHeight = 0μ²λΌ μλνμ§ μμΌλ©° μ½λκ° μ€νλ λ 보μ΄λ λͺ¨λ κ²μ λ λλ§ν©λλ€. (λ΄ λ²νΌμ νλ¨μ μμ΅λλ€).
btmλμ λκΈμ²λΌ μμ μ¬μ΄νΈμμλ μ΄λ»κ² λλμ§ μκ³ μΆμ΅λλ€. μ€ν μ€ν¬λ¦° 리μμ€λ₯Ό μ»κΈ° μν΄ Angular λλ Bootstrapμ 무μΈκ°μ μμ‘΄ν μ μμ΅λκΉ?
@cchubb λλ Angleκ³Ό Bootstrapμ΄ μ΄κ²κ³Ό μ΄λ€ κ΄λ ¨μ΄ μλμ§ μ΄ν΄νμ§ λͺ»ν©λλ€. Johnμ λ¬Έμ λ νΉμ μμλ₯Ό λ λλ§νλ λ¬Έμ μΈ κ² κ°μ΅λλ€.
λ·°ν¬νΈ μΈλΆμ μλ λ λλ§μ μνλ©΄ λ€μμ μ¬μ©νμμμ€.
html2canvas(document.body).then(function (canvas) {});
μμλ₯Ό "μ€λ²νλ‘"λ‘ λ λλ§νλ €λ©΄ λ°νμμ "μ€λ²νλ‘"λ₯Ό μ κ±°νκ³ λ€μκ³Ό κ°μ΄ className μΆκ°λ₯Ό μν΄ javascriptλ₯Ό μ¬μ©νμ¬ νλ‘μΈμ€ νμ λ€μ μΆκ°ν©λλ€.
.no-scroll {
overflow: visible !important;
}
#main {
overflow: auto;
height: 200px;
}
<div id="main">
test<br> test<br> test<br> test<br> test<br> test<br> test<br> test<br>
test<br> test<br> test<br> test<br> test<br> test<br> test<br> test<br>
test<br> test<br> test<br> test<br> test<br> test<br> test<br> test<br>
</div>
document.getElementById("main").className = "no-scroll";
html2canvas(document.body).then(function (canvas) {
document.getElementById("main").className = "";
});
λλ λ€μκ³Ό κ°μ΄ "overflow"λ₯Ό μ¬μ©νμ¬ μμ λ΄μ μμλ₯Ό λ λλ§νλλ‘ html2canvasλ₯Ό κ°λ¦¬ν΅λλ€.
#parent {
overflow: auto;
height: 200px;
}
#child {
background-color: #fc0;
height: 600px;
}
<div id="parent">
<div id="main">
test<br> test<br> test<br> test<br> test<br> test<br> test<br> test<br>
test<br> test<br> test<br> test<br> test<br> test<br> test<br> test<br>
test<br> test<br> test<br> test<br> test<br> test<br> test<br> test<br>
</div>
</div>
html2canvas(document.getElementById("main")).then(function (canvas) {});
μ λ§ λ΄ κ΄μ μμ λΆνμν κΈ°λ₯μ λν λ§μ μ μμ΄ μμ΅λλ€. λ¨μν μ¬λ°λ₯Έ DOM μμλ₯Ό λμμΌλ‘ νκ³ "CSS"λ₯Ό μ 리νκ² μ¬μ©ν©λλ€.
λλ κ·Έκ²μ μμ. 0.5.0-alpha2μμ μμ νμ΅λλ€. 0.5.0-alpha1 λ²μ μ μ¬μ©νλ©΄ ν΄λ¦¬νλμ§λ§ alpha2 λ²μ μ κ·Έλ μ§ μμ΅λλ€. λ¦΄λ¦¬μ€ νμ΄μ§κ° alpha1μ μ΄μ μ λ§μΆκ³ μμκΈ° λλ¬Έμ alpha2λ₯Ό μ¬μ©ν μ μλ€λ μ¬μ€μ‘°μ°¨ μμ§ λͺ»νμ΅λλ€.
λ€μμ alpha2μ ν¨κ» μλνλ κ²μ 보μ¬μ£Όλ λ°μ΄μ¬λ¦°μ λλ€. https://jsfiddle.net/cchubb/fy7tw7ek/1/ μΈλΆ 리μμ€λ₯Ό λ€μ alpha1λ‘ λ³κ²½νλ©΄ νλ¨ λ§ν¬λ₯Ό ν΄λ¦νλ©΄ μ립λλ€. (λ€μ΄λ‘λ νμΌμ λ³΄λ €λ©΄ .pngλ‘ μ μ₯ν΄μΌ ν©λλ€. fiddlesμμλ μΆλ ₯ μ°½ hrefλ₯Ό λ°μ΄ν°λ‘ λ³κ²½ν μ μμ΅λλ€.)
@btm1 ,
@cchubb νλ² ν΄λ³΄ κ² μ΅λλ€.
@cchubb κ·Όλ³Έμ μΈ λ¬Έμ λ μν 2μμ μμ λμμΌλ©° μ μ¨κ²¨μ Έ μμ΄ μν 2κ° μλ μ€λ λͺ°λμ΅λλ€.
ν , alpha2μμλ μ¬μ ν λ·°ν¬νΈμμ "보μ΄λ" μμμ μΌλΆλ§ λ λλ§λ©λλ€. λ°λͺ¨λ http://jsfiddle.net/NPC42/ykvL6a17/ μ μ°Έμ‘°νμμμ€. html2canvasλ μ€ν¬λ‘€λ νλ§ λ·°ν¬νΈλ‘ λ΄λ³΄λ λλ€(μ€ν¬λ‘€λ 컨ν μ΄λ divμ νμλλμ§ μ¬λΆμ κ΄κ³μμ΄).
μ΄λ»κ² λ html2canvasλ₯Ό μλͺ» νΈμΆνκ³ μμ΅λκΉ? λ°λͺ¨μ©μΌλ‘ λ§λ JSFiddleμ΄ μλ μ€μ μ½λμμ ν μ€νΈν λ μ΄ μ μμ μ 체 μμλ₯Ό λ λλ§νλ λ° λμμ΄ λ©λλ€. https://github.com/niklasvh/html2canvas/issues/650 λΌμ΄λΈλ¬λ¦¬ ν΄νΉμ νΌνκΈ° μν΄.
@NPC κ·Έκ²μ λΉμ μ΄ μ무κ²λνμ§ μκ³ λ³΄κΈ°μμλ κ²μ λ λλ§νμ§ μμ κ²μ λλ€. μ€λ²νλ‘κ° λ³΄μ΄λλ‘ λ³κ²½ν΄μΌν©λλ€ ---> μ λ§ λΉ¨λ¦¬ λ΄λ³΄λ΄κΈ° ---> λ€μ μ€ν¬λ‘€νμ¬ λ€μ λ³κ²½ν΄μΌ μλνμ§ μμ΅λλ€. μ΄μμ μΈ IMOλ μλμ§λ§ μλνλλ‘ νλ μ΅μ μ΄ μμ΄μΌ νλ€κ³ μκ°νμ§λ§ μ μ΄λ μλν©λλ€.
@btm1 , μ, μ€ν¬λ‘€λ μμ λ΄μ μλ μμλ₯Ό μ λ¬νκΈ° λλ¬Έμ μμ μ체μ μ€λ²νλ‘ νΈλ¦¬λ°μ΄ μμΌλ―λ‘ μλκ° μλλΌκ³ κ°μ ν©λλ€.
μ§κΈμ λ΄ μ±μμ μ 체 μμλ₯Ό λ³Έλ¬Έμ λ€μ μ°κ²°νμ¬ νΉμ λλΉ/λμ΄λ₯Ό μ μ©ν΄μΌ νλ€λ κ²μ μμμ΅λλ€(μ λ μμΉ μμκ° ν¬ν¨λμ΄ μκΈ° λλ¬Έμ). κ·Έ λμ μ 체 νλ©΄ "λ΄λ³΄λ΄κΈ° μ€λΉ μ€, html2canvasκ° λͺ¨λ λ λλ§νλ λ° 10μ΄ μ΄μμ΄ κ±Έλ¦¬κΈ° λλ¬Έμ "κΈ°λ€λ € μ£Όμμμ€." μ€λ²λ μ΄κ° νμλ©λλ€. λ λλ§μ΄ μλ£λ ν λλΉ/λμ΄ μ€μ μ ν΄μ νμ¬ μλ μμΉ(μ€ν¬λ‘€λ 컨ν μ΄λ λ΄λΆ)μ λ€μ λΆμ°©ν©λλ€.
λ²κ±°λ‘μ§λ§ μλν©λλ€.
μ΄μνκ²λ μ£Όμ΄μ§ μμμ νμ¬ λ³΄μ΄λ μλ¨ κ²½κ³μμλ§ λ λλ§λ©λλ€.
https://jsfiddle.net/bianjp/bpc3nq69/1/λ₯Ό μλ
λ²μ 0.5.0.beta4 μ¬μ©.
ν΄κ²°μ±
μ html2canvasλ₯Ό νΈμΆνκΈ° μ μ $('html, body').scrollTop(0)
(λλ λ λλ§ν μμμ μλ¨μ 보μ΄κ² νλ λ€λ₯Έ λ°©λ²)λ₯Ό νΈμΆνλ κ²μ
λλ€.
μμ μ μμ λν΄ @bianjp μκ² κ°μ¬λ립λλ€.
μ΄μνκ²λ μ£Όμ΄μ§ μμμ νμ¬ λ³΄μ΄λ μλ¨ κ²½κ³μμλ§ λ λλ§λ©λλ€.
κ·Έκ²μ΄ μ μμ μΈ νλμ λκΉ ... κ·Έκ²μ λμκ² λ§€μ° μ΄μνκ² λ³΄μ λλ€!
+1
μ΄ SO λ΅λ³μ΄ μ μκ²
html2canvasλ₯Ό νΈμΆνκΈ° μ μ λ λλ§νλ €λ μμλ₯Ό λ·°ν¬νΈλ‘ μ€ν¬λ‘€ν©λλ€.
const el = document.querySelector('#test')
el.scrollIntoView()
setTimeout(function () {
html2canvas(el, {
onrendered: function (canvas) {
document.body.appendChild(canvas)
},
useCORS: true
})
}, 10)
κ·Έκ²μ λλ₯Ό μν΄ μλν©λλ€.
μ¬μ© λ²μ μ 0.5.0-beta4μ
λλ€.
μ΄κ²μ μ¬μ ν v1.0.0 μ λ¬Έμ μ λκΉ? κ·Έλ λ€λ©΄ jsfiddleμ λν μλ₯Ό
μ΄ νΈλ μμ μμ μΆκ° μ 보 μμ²μ λν μλ΅μ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ’ λ£λμμ΅λλ€. νμ¬ λ¬Έμ μ μλ μ 보λ§μΌλ‘λ μ‘°μΉλ₯Ό μ·¨νκΈ°μ μΆ©λΆν μ λ³΄κ° μμ΅λλ€. λ μ‘°μ¬ν μ μλλ‘ νμν λ΅λ³μ΄ μκ±°λ μ°ΎμΌλ©΄ μ°λ½ν΄ μ£Όμμμ€.
μλ νμΈμ, @niklashvh
λν DOMμλ§ νμλλ μ€λ
μ·μ μ°λ λ¬Έμ μ μ§λ©΄νμ΅λλ€. λ²μ 0.5.0-beta4κ° μμ΅λλ€.
λ°λΌμ @ziyoung μ루μ
μ λμν©λλ€. λλ κ·Έκ° μ μν λλ‘ λκ°μ΄ νλ€.
`$('html,body').scrollTop(0);
html2canvas( $("#rectangular_div"), {
useCORS: true,
dpi: 200,
onrendered:function(canvas) {
var str = canvas.toDataURL("image/png");
var contentType = 'image/png';
console.log(str);
b64Data =str;
imgFrameSave();
}
})`
κ·Έλμ top 0 μ div μμΉλ₯Ό body λ‘ μ€μ νκ³ html2canvas λ₯Ό νΈμΆν©λλ€. λ°λΌμ λ΄ κ²½νμ λ°λ₯΄λ©΄ μ΄λ―Έμ§ pix-elation λ¬Έμ λ₯Ό λ°©μ§νκ³ DOMμμ μ 체 μ΄λ―Έμ§λ₯Ό μΊ‘μ²ν μ μλλ‘ @eKoopmansμ λ²μ 0.5.0-beta4λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
λ°μ€ν¬ν±μμλ μλνμ§λ§ λͺ¨λ°μΌμμλ μλνμ§ μμ΅λλ€.
λ΄κ° ν κ²μ htmltocanvas()λ₯Ό νΈμΆνκΈ° μ μ window.scrolTo(0,0)
μ
λλ€. νλ©΄ μλ¨μ μμΌλ©΄ divκ° μλ£λ‘ μΈμλ©λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄μνκ²λ μ£Όμ΄μ§ μμμ νμ¬ λ³΄μ΄λ μλ¨ κ²½κ³μμλ§ λ λλ§λ©λλ€.
https://jsfiddle.net/bianjp/bpc3nq69/1/λ₯Ό μλ
λ²μ 0.5.0.beta4 μ¬μ©.
ν΄κ²°μ± μ html2canvasλ₯Ό νΈμΆνκΈ° μ μ
$('html, body').scrollTop(0)
(λλ λ λλ§ν μμμ μλ¨μ 보μ΄κ² νλ λ€λ₯Έ λ°©λ²)λ₯Ό νΈμΆνλ κ²μ λλ€.