html2canvas를 사용할 때 DOM 객체 (상대 위치 지정된 div에 여러 가지가 포함됨)가 stack
있습니다. 개별 축소판을 만들려고합니다. 10 개의 div가 있다면 10 개의 미리보기 이미지를 만듭니다.html2canvas offscreen
이러한 개체 중 일부는 화면에 표시되지 않습니다. 이러한 div는 모두 "mainDiv"라는 하나의 포괄적 인 div에 있습니다. mainDiv 내의 div를 반복하고 각각에 개별적으로 html2canvas를 실행합니다.
화면 상 나타나는 경우에는 정상적으로 작동합니다. 화면이 꺼진 사람들은 공백으로 돌아옵니다. 나는 객체를 mainDiv
의 맨 위로 스크롤하는 해결 방법을 만들었지 만, 이것은 멍청하고 시각적으로 매력적이지 않습니다.
보이지 않는 DOM 개체를 지정할 수 있습니까? 이상 적으로는 포함 div를 지정하고 html2canvas
이 부모 가시성을 무시하도록 숨겨진 개체를 캡쳐 할 수는 있지만 차단하지 않으면 캡쳐 된 개체를 단순히 화면에 표시 할 수 있기를 원합니다. 화면.
모든 의견, 아이디어? 감사!
---- 다음은 몇 가지 예제 코드입니다. 기본적으로 div 내에서 div가 여러 개있는 경우 div를 반복합니다. 재귀 호출이 완료되면 콜백 함수를 실행
function recurser(anIndex, callback) {
if (anIndex == -1) {
callback();
return;
}
$(myDivs[anIndex]).html2canvas({
onrendered : function(canvas) {
var img = canvas.toDataURL();
// store the image in an array, do stuff with it, etc.
recurser(--anIndex, callback);
}
})
}
: 나는 실제로 재귀 함수를 호출하는 콜백, 그래서 한 번에 하나만 처리됩니다이 recursively
할, 그래서 다음과 같이 보입니다 그것은 이미지로 물건을 할 함수입니다.
#mainDiv의 모든 div가 포함 된 스크롤 div에서 개체가 표시되는 경우에도 마찬가지입니다. 그러나 div의 일부가 스크롤되면 검은 색으로 렌더링됩니다. 실제로 두 div의 절반이 스크롤되면 (둘 중 하나의 위쪽 절반, 다음 절반의 아래쪽 절반), 둘 다 완전히 검은 색으로 렌더링됩니다.
몇 가지 코드 예제를 첨부하십시오 제거 렌더링. – anataliocs
몇 가지 코드 예제가 추가되었습니다. – sneuf
@sneuf이 브라우저는 특정 브라우저 용입니까, 아니면 브라우저간에 이러한 동작이 발생합니까? 이것에 좋은 픽업 – pseudosavant