html2canvas滾動軸問題、dom-to-image移動端相容性問題彙總

来源:https://www.cnblogs.com/chenyingying0/archive/2020/06/04/13043247.html
-Advertisement-
Play Games

項目要求是:html生成圖片(圖片格式不限),長按圖片能夠保存到本地,主要在移動端 1、初試html2canvas 最初選擇的是html2canvas插件,將html轉為canvas 再通過Canvas2Image,將canvas轉為想要的圖片 問題:只能截取一屏的內容,當出現滾動條時,不在滾動視區 ...


項目要求是:html生成圖片(圖片格式不限),長按圖片能夠保存到本地,主要在移動端

1、初試html2canvas

最初選擇的是html2canvas插件,將html轉為canvas

再通過Canvas2Image,將canvas轉為想要的圖片

問題:只能截取一屏的內容,當出現滾動條時,不在滾動視區的部分不會被生成

 

2、換用dom-to-image

聽從廣大網友的建議,換用dom-to-image插件

該插件常用的是 toPng、toJpeg、toSvg 這三種方法

本人實測之後:toPng和toJpeg方法只在部分ios端有效,在ios8以上和android上(微信內置)存在相容性問題

toSvg 能夠順利在各種機型上生成圖片,但是無法長按保存,想來是svg格式在移動端的支持性不好

嘗試使用 canvas.todataurl 將svg轉換為png格式,發現在android端依舊存在相容性問題

 

3、繼續用回html2canvas

想到的解決方案是:將需要生成圖片的長圖按一定比例縮小,在一屏中生成圖片

代碼大致如下:

img.style.transform = "scale(0.4)";

 

相容性問題真是前端一大煩心事。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 前言 之前寫過一篇博客,講解的是Redis的5種數據結構及其常用命令,當時有讀者評論,說希望瞭解下這5種數據結構各自的使用場景,不過一直也沒來得及寫。 碰巧,在3月份找工作面試時,有個面試官先問了我Redis有哪幾種數據結構,在我講完後,面試官又問了我以下問題: 如何用Redis實現微信步數排 ...
  • 打開虛擬機進入linux系統 進入Hadoop目錄下 多用tab鍵 它可以自動補齊命令 1. 啟動Hadoop集群 start-all.sh 等價於 start-dfs.sh 和 start-yarn.sh 2. 關閉Hadoop集群 stop-all.sh 3. 查看啟動的服務進程 jps 4. ...
  • 什麼叫大數據,“大”,說的並不僅是數據的“多”!不能用數據到了多少TB ,多少PB 來說。 對於大數據,可以用四個詞來表示:大量,多樣,實時,不確定。 也就是數據的量龐大,數據的種類繁雜多樣話,數據的變化飛快,數據的真假存疑。 大量:這個大家都知道,想百度,淘寶,騰訊,Facebook,Twitte ...
  • 今天和大家分享一下,iOS開發3-5年應該掌握的技能。 大大小小參加過不下30+公司的面試,其中不乏BAT、TMD等一線互聯網公司,總結一下,發現大廠招聘都有一個共性。 對技術的要求很全面,有些開發者認為iOS掌握了基礎的UI、網路、記憶體、多線程等等就夠了,其實要想更好的應付iOS的面試,這些是遠遠 ...
  • 1.先說現狀 現在國內公司開全新項目,Swift 已經占壓倒性優勢了。 很多以前是 OC 的項目也轉向 OC/Swift 混編了。 但是也有對包大小非常敏感的項目,還是純 OC 開發。不少公司剛剛擺脫 MRC 不久,業務壓力大,歷史包袱重,沒有時間推進新技術。 2. 對比一下 OC 和 Swift ...
  • 下麵說一下我的感受吧 自學web前端8個月,我是怎樣拿下7K薪資的?自學兩個字,說起來很輕鬆,但真正做起來那真是絕非易事,說實話,在我收到HR發來的offer那一刻,眼淚差點掉下來,這個過程中吃的這些苦,真的只有自己才能知道,在自學的時候經常會碰到一些技術方面的問題,找不到老師教,只能去群里哪裡找大 ...
  • 結合個人經歷總結的前端入門方法,總結從零基礎到具備前基本技能的道路,學習方法,資料,由於能力有限,不能保證面面俱到,知識作為入門參考,面向初學者,讓初學者少走彎路。 互聯網的快速發展和激烈競爭,用戶體驗成為一個重要的關註點,導致專業前端工程師成為熱門職業,各大公司對前端工程師的需求量都很大,要求也越 ...
  • HTML+CSS+JS模仿win10亮度調節效果 代碼 <!doctype html> <html> <head> <meta charset="utf-8"> <title>模仿win10的亮度調節</title> <style> .control_bar{ height:200px; width ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...