Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
數據時代,收集和使用數據的需求正在爆發式增長,數據可視化也變得愈加重要。開發人員在想方設法將不同數據庫中的記錄整合到儀表板和漂亮的圖表中,向人們快速直觀地展示信息。
在過去十年中數據可視化技術不斷改進,結果涌現了很多高水平的圖表庫。
21 世紀初期,人們使用服務端圖像位圖來生成圖表。那時像 Silverlight 和 Flash 這樣的插件提供了豐富的交互式圖表體驗,代價是減少電池壽命、拖慢下載速度并耗費更多系統資源。
移動設備興起之后,移動平臺不再支持插件并開始轉向開放客戶端技術,這些技術可以在任何平臺上運行,成為了開發人員的首選。同時,觸摸手勢縮放和非常高分辨率的屏幕開始流行,使得無關分辨率的矢量圖表廣受歡迎。
隨之而來的就是數據可視化的時代,SVG 可擴展矢量圖像和 JavaScript 成為主角。今天的圖表技術可支持所有瀏覽器平臺,支持交互性和動畫,并且不需要特殊的插件。這些圖表在高分辨率設備中也有很好的顯示效果。我們可以在 JS 開發中使用許多 JavaScript 圖表庫實現這些目標。
市面上有很多 JavaScript 圖表庫,本文則列出了其中的幾款佼佼者,可以用在你的新項目中。
以下就是 2019 年的頂級 Javascript 圖表庫名單。
D3.js 是一個圖形 JavaScript 庫,功能眾多,十分強大。你可以用它對文檔做數據驅動的轉換,然后將任意數據綁定到 DOM 上。
D3 是非常優秀的圖表庫。它有一些較小的技術模塊,如顏色、軸、輪廓、層次結構、多邊形、緩動等。這也意味著你需要學習很多知識才能用好它,上手并不容易。
即使用它創建簡單的圖表也可能需要復雜的步驟。你需要明確定義包含圖表項和軸在內的所有元素。它提供了一些示例,教你如何使用 CSS 來設置圖表元素的樣式。開發者無法自動應用基于圖表的功能。
如果你想從零開始設計復雜的圖表,完全按照自己的想法控制所有元素,那么這個庫就是你的首選。但如果時間緊迫,從頭開始解決數據可視化項目需求可能就不是什么好主意了。
作為圖表庫來說,D3.js 可以充當構建塊。開發者可以用 D3 與 NVD3 一類的方案配合工作。這個圖表庫完全免費并開源。
Highcharts 是市面流行的 JavaScript 圖表庫之一,并被許多大公司采用。為了提供對 IE6 到 IE8 的兼容性,它先使用 SVG 然后轉向 VML 來生成圖表。它的示例圖表帶有一些很棒的功能,但看起來不怎么吸引人。它的文檔里有很多 API 文檔教程和相關主題。
它的 API 易于使用,開發者可以使用配置選項來開發圖表。對于個人和非商業用途,Highcharts 可免費使用;證券行業等用途需要商業許可,而甘特圖和地圖圖表則需要單獨的許可證。
Chart.js 是一個開源 JavaScript 庫,支持 8 種類型的圖表。它只有 60kb,是一個非常小的 JS 庫。它支持的圖表類型包括雷達、內聯圖表、餅圖、條形圖、散點圖、面積圖、氣泡和混合等。它還支持時間序列。在呈現層面,它使用 canvas 元素并能響應窗口大小調整縮放比率。它對 IE9 向后兼容。要兼容 IE7 的話也可以使用 Polyfills。
初次使用它的示例時還能看到現代感的初始動畫。實時添加數據點或序列時有平滑的動畫效果。你可以調用 update() 函數來修改圖表選項并重繪圖表。
在它的網站中沒有展示示例源代碼,但可以在 GitHub 倉庫中找到。它的 API 簡潔直觀。用戶使用配置選項來創建和修改圖表。它的文檔內容翔實,附帶代碼片段和屬性 API 的教程。
這個庫可免費用于商業和個人用途。它是開源項目。但對于更高級別的需求來說,它提供的圖表類型可能有點少。
......
點擊“了解更多”,查看全文
何把網頁上的內容用javascript來實現截圖?今天分享的html2canvas就可以。
在微信項目中經常會遇到動態生成海報的需求,Web前端合成圖片往往會使用canvas。canvas雖然強大,但用來合成海報非常繁瑣,一不小心就幾百行代碼了。而html2canvas.js是一款輕松地將HTML+CSS寫成的布局直接轉換成canvas,生成可保存分享的圖片。
html2canvas.js官網截圖
這是一個把HTML的DOM結構根據所支持的CSS樣式生成canvas的js開源庫,CSS的寫法千變萬化,不同的布局有很多不同的寫法,因此html2canvas是不能100%還原網頁的樣式,因此不用用于像電腦屏幕截圖這樣的需求中。
官網關于支持css的說明
使用的時候要注意查看所支持的CSS屬性,盡量使用這些屬性來寫布局,不支持的效果可以嘗試用圖片來實現。只要產品經理腦子在線,目測幾乎沒有什么海報需求是實現不了的。
官網是英文的,寫得很專業,谷歌翻譯閱讀無壓力。
html2canvas 由開發者 Niklas von Hertzen 創建,基于MIT許可開源,可以免費使用在任何項目。
關注我,持續分享高質量的免費開源、免費商用的資源。
↓↓點【了解更多】查看本次分享的相關網址。
html2canvas庫允許您直接在用戶瀏覽器上截取網頁或部分網頁的“屏幕截圖”。屏幕截圖基于DOM,因此它可能不是真實表示的100%準確,因為它沒有制作實際的屏幕截圖,而是根據頁面上可用的信息構建屏幕截圖。目前Github star 17.5K+,可以說非常熱門,最新版本1.0.0-rc.3。以上是官網截圖:
點擊capture按鈕效果截圖:
html2canvas庫通過讀取DOM以及應用于元素的不同樣式,將當前頁面呈現為畫布圖像。它不需要來自服務器的任何渲染,因為整個圖像是在客戶端的瀏覽器上創建的。但是,由于它嚴重依賴于瀏覽器,因此該庫不適合在nodejs中使用。它也不會主動地規避任何瀏覽器內容策略限制,因此對應呈現跨源內容將需要代理來將內容提供給相同的源。
該庫應該可以在以下瀏覽器上正常工作(使用Promisepolyfill):
由于該庫需要手動構建每個CSS屬性以支持,因此還有一些尚不支持的屬性。
目前不支持這些CSS屬性:
安裝
npm install html2canvas import html2canvas from 'html2canvas';
HTML
<div id="capture" style="padding: 10px; background: #f5da55"> <h4 style="color: #000; ">Hello world!</h4> </div>
JavaScript
html2canvas(document.querySelector("#capture")).then(canvas=> { document.body.appendChild(canvas) });
Tips:
html2canvas(element, options), 具體的option如何配置請詳細閱讀官方文檔。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。