可添加配置
在调用方法之前使用;** window.scrollTo(0, 0);
return new Promise((resolve, reject) => {
html2canvasToFile(dom, id + '.jpeg', 'image/jpeg', (doc) => {
// 滚动到顶部
doc.documentElement.scrollTop = 0;
doc.body.scrollTop = 0;
doc.body.style.height = window.innerHeight + 'px';
// 在克隆的文档中找到需要忽略的元素并进行处理
const addPaymentRecordDom = doc.getElementById('addPaymentRecord');
const addPaymentRecordH = addPaymentRecordDom?.offsetHeight || 0;
const appLayoutForAgent =doc.getElementById('appLayoutForAgent');
const appLayoutForAgentH = appLayoutForAgent?.offsetHeight || 0;
// 注释高度
if (
addPaymentRecordH > 0 &&
addPaymentRecordH > doc.body.offsetHeight
) {
doc.body.style.height = ${appLayoutForAgentH-addPaymentRecordH>0? appLayoutForAgentH:addPaymentRecordH}px;
}
// 弹窗截图
const box = doc.getElementsByClassName(
'add-dialog',
)?.[0] as HTMLDivElement;
if (box) {
const boxStyle = box.style;
box.scrollTop = 0;
boxStyle.height = 'auto';
boxStyle.maxHeight = 'unset';
const { top, height } = box.getBoundingClientRect();
const bodyH=doc.body.style.height
if( bodyH && height+64-Number(bodyH.replace('px',''))>0){
doc.body.style.height=height+64+'px'
}
if (top < 0) {
boxStyle.position = 'absolute';
boxStyle.top = '0';
boxStyle.left = '32px';
boxStyle.right = '32px';
boxStyle.marginLeft = '0';
boxStyle.marginRight = '0';
}
}
})
.then((file) => {
style.remove();
const formData = new FormData();
formData.append('file', file);
formData.append('imageType', '2');
formData.append('eformId', id);
uploadFile({
type: 'paymentForm',
file: formData,
});
resolve(file);
})
.catch((error) => {
console.error(
'Error creating screenshot or converting to File:',
error,
);
reject();
});
});
html2canvas(element, { width, // height: 1500, scale: 2, useCORS: true, allowTaint: true, backgroundColor: null, onclone: onclone, scrollY:0 }) 主要是添加scrollY为0;