html转图片

<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>
posted @ 2021-03-30 16:11  邈宇  阅读(191)  评论(0)    收藏  举报