LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

棄用 html2canvas!快 93 倍的截圖神器!

freeflydom
2025年7月9日 15:23 本文熱度 909

在前端開發(fā)中,網(wǎng)頁截圖是個常用功能。從前,html2canvas 是大家的常客,但隨著網(wǎng)頁越來越復(fù)雜,它的性能問題也逐漸暴露,速度慢占資源,用戶體驗不盡如人意。

好在,現(xiàn)在有了 SnapDOM,一款性能超棒還原度超高的截圖新秀,能完美替代 html2canvas,讓截圖不再是麻煩事。

什么是 SnapDOM

SnapDOM 就是一個專門用來給網(wǎng)頁元素截圖的工具。

它能把 HTML 元素快速又準(zhǔn)確地存成各種圖片格式,像 SVGPNGJPGWebP 等等,還支持導(dǎo)出為 Canvas 元素。

它最厲害的地方在于,能把網(wǎng)頁上的各種復(fù)雜元素,比如 CSS 樣式、偽元素Shadow DOM內(nèi)嵌字體背景圖片,甚至是動態(tài)效果的當(dāng)前狀態(tài),都原原本本地截下來,跟直接看網(wǎng)頁沒啥兩樣。

SnapDOM 優(yōu)勢

快得飛起

測試數(shù)據(jù)顯示,在不同場景下,SnapDOM 都把 html2canvas 和 dom-to-image 這倆老前輩遠遠甩在身后。

尤其在超大元素(4000×2000)截圖時,速度是 html2canvas 的 93.31 倍,比 dom-to-image 快了 133.12 倍。這速度,簡直就像坐火箭。

還原度超高

SnapDOM 截圖出來的效果,跟在網(wǎng)頁上看到的一模一樣。

各種復(fù)雜的 CSS 樣式、偽元素Shadow DOM內(nèi)嵌字體背景圖片,還有動態(tài)效果的當(dāng)前狀態(tài),都能精準(zhǔn)還原。

無論是簡單的元素,還是復(fù)雜的網(wǎng)頁布局,它都能輕松拿捏。

格式任你選

不管你是想要矢量圖 SVG,還是常用的 PNGJPG,或者現(xiàn)代化的 WebP,又或者是需要進一步處理的 Canvas 元素,SnapDOM 都能滿足你。

多種格式,任你挑選,適配各種需求。

怎么用 SnapDOM

安裝

SnapDOM 的安裝超簡單,有好幾種方式:

用 NPM 或 Yarn:在命令行里輸

# npm
npm i @zumer/snapdom

# yarn
yarn add @zumer/snapdom

就能裝好。

用 CDN 在 HTML 文件里加一行:

<script src="https://unpkg.com/@zumer/snapdom@latest/dist/snapdom.min.js"></script>

直接就能用。

要是項目里用的是 ES Module:

import { snapdom } from '@zumer/snapdom

基礎(chǔ)用法示例

一鍵截圖

const card = document.querySelector('.user-card');
const image = await snapdom.toPng(card);
document.body.appendChild(image);

這段代碼就是找個元素,然后直接截成 PNG 圖片,再把圖片加到頁面上。簡單粗暴,一步到位。

高級配置

const element = document.querySelector('.chart-container');
const capture = await snapdom(element, {
    scale2,
    backgroundColor'#fff',
    embedFontstrue,
    compresstrue
});
const png = await capture.toPng();
const jpg = await capture.toJpg({ quality0.9 });
await capture.download({
    format'png',
    filename'chart-report-2024'
});

這兒可以對截圖進行各種配置。比如 scale 能調(diào)整清晰度,backgroundColor 能設(shè)置背景色,embedFonts 可以內(nèi)嵌字體,compress 能壓縮優(yōu)化。配置好后,還能把截圖存成不同格式,或者直接下載到本地。

和其他庫比咋樣

和 html2canvasdom-to-image 比起來,SnapDOM 的優(yōu)勢很明顯:

特性
SnapDOM
html2canvas
dom-to-image
性能
?????
??
?
準(zhǔn)確度
?????
???
????
文件大小
極小
較大
中等
依賴
SVG 支持
?
?
?
Shadow DOM 支持
?
?
?
維護狀態(tài)
活躍
活躍
停滯

用的時候注意點

用 SnapDOM 時,有幾點得注意:

跨域資源

要是截圖里有外部圖片等跨域資源,得確保這些資源支持 CORS,不然截不出來。

iframe 限制

SnapDOM 不能截 iframe 內(nèi)容,這是瀏覽器的安全限制,沒辦法。

Safari 瀏覽器兼容性

在 Safari 里用 WebP 格式時,會自動變成 PNG。

大型頁面截圖

截超大頁面時,建議分塊截,不然可能會內(nèi)存溢出

SnapDOM 能干啥及代碼示例

社交分享

async function shareAchievement({
    const card = document.querySelector('.achievement-card');
    const image = await snapdom.toPng(card, { scale2 });
    navigator.share({
        files: [new File([await snapdom.toBlob(card)], 'achievement.png')],
        title'我獲得了新成就!'
    });
}

報表導(dǎo)出

async function exportReport({
    const reportSection = document.querySelector('.report-section');
    await preCache(reportSection);
    await snapdom.download(reportSection, {
        format'png',
        scale2,
        filename`report-${new Date().toISOString().split('T')[0]}`
    });
}

海報導(dǎo)出

async function generatePoster(productData{
    document.querySelector('.poster-title').textContent = productData.name;
    document.querySelector('.poster-price').textContent = `¥${productData.price}`;
    document.querySelector('.poster-image').src = productData.image;
    await new Promise((resolve) => setTimeout(resolve, 100));
    const poster = document.querySelector('.poster-container');
    const blob = await snapdom.toBlob(poster, { scale3 });
    return blob;
}

寫在最后

SnapDOM 就是這么一款簡單、快速、準(zhǔn)確,還零依賴的網(wǎng)頁截圖神器。

無論是社交分享、報表導(dǎo)出、設(shè)計保存,還是營銷推廣,它都能輕松搞定。

而且它是免費開源的,背后還有活躍的社區(qū)支持。要是你還在為網(wǎng)頁截圖的事兒發(fā)愁,趕緊試試 SnapDOM 吧。


要是你在用 SnapDOM 的過程中有啥疑問,或者碰上啥問題,可以去下面這些地方找答案:

  • 項目地址 :https://github.com/zumerlab/snapdom
  • 在線演示 :https://zumerlab.github.io/snapdom/
  • 詳細(xì)文檔 :https://github.com/zumerlab/snapdom#readme

?轉(zhuǎn)自https://mp.weixin.qq.com/s/t0s5dCOrsuqYyFGf6MpqPA


該文章在 2025/7/9 15:23:23 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日韩亚洲欧美中文字幕第六页 | 日本午夜视频一级a | 综合国产在线中文字幕 | 亚洲伊人久久综合网站 | 亚洲欧美丝袜精品久久 | 久久精品福利中文字幕 |