<div id="generateContainer">
<div class="content">
<div class="content-item gray title">基本信息</div>
<div class="content-item">
<div class="label">属相</div>
<div class="coton">:</div>
<div class="value">虎</div>
</div>
<div class="content-item">
<div class="label">星座</div>
<div class="coton">:</div>
<div class="value">白羊</div>
</div>
<div class="content-item">
<div class="flex">
<div class="label">
自我介绍
</div>
<div class="coton">:</div>
</div>
<div class="value" style="line-height: 4.2vw;padding-right: 5vw;box-sizing: border-box;">自我介绍</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.7/dist/html2canvas.min.js"></script>
<script>
hasGenerated = false
async function generateShareImg(){
if(hasGenerated){
window.alert('长按页面保存')
}else{
const base64Url = await syncCreateGenerateImg();
hasGenerated = true
const img = `<img id="generateImg" src="${base64Url}" />`
document.querySelector("#generateContainer").innerHTML = img
window.alert('长按页面保存图片')
}
}
const syncCreateGenerateImg = () => {
return new Promise((resolve, reject) => {
window.scrollTo(0, 0);
html2canvas(document.querySelector("#generateContainer"), {
useCORS: true,
// width: document.querySelector("#preview").scrollWidth,
// height: document.querySelector("#preview").scrollHeight,
backgroundColor: "transparent",
scale: 2,
dpi: 350,
scrollY: 0,
})
.then(function (canvas) {
const base64Url = canvas.toDataURL("image/png", 1.0);
resolve(base64Url);
})
.catch((err) => {
reject(err);
});
});
};
</script>