JavaScript實(shí)現(xiàn)的DOM繪制柱狀圖效果示例
本文實(shí)例講述了JavaScript實(shí)現(xiàn)的DOM繪制柱狀圖效果。分享給大家供大家參考,具體如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>chabaoo.cn JavaScript DOM繪制柱狀圖</title> <style> #chart-wrap{ width:910px; height:240px; border:solid 1px #B3B3DC; position:relative; top:40px; left:20px; } </style> </head> <body> <div id="chart-wrap"></div> <script> function renderChart(data) { var cw = document.getElementById("chart-wrap"); cw.innerHTML = ""; var max = 0; for (var index in data) { if (data[index] > max) max = data[index]; } var percent = 180 / max; var i = 0; for (var index in data) { var bar = document.createElement("div"); bar.id = index + "_" + data[index]; bar.style.height = Math.round(percent * data[index]) + "px"; bar.style.width = "40px"; bar.style.left = (i * 40) + 165 + "px"; bar.style.marginLeft = (i * 20) + "px"; bar.style.position = "absolute"; bar.style.background = "none repeat scroll 0 0 pink"; bar.style.overflow = "hidden"; bar.setAttribute("title", index + ":" + data[index]); bar.style.display = "block"; bar.style.top = 200 - Math.round(percent * data[index]) + "px"; cw.appendChild(bar); var axis = document.createElement("div"); axis.id = "axis_" + i; axis.style.width = "40px"; axis.style.left = (i * 40) + 165 + "px"; axis.style.marginLeft = (i * 20) + "px"; axis.style.textAlign = "center"; axis.style.position = "absolute"; axis.style.top = "205px"; axis.innerHTML = '<span style="font-size:12px; color:grey;"> ' + i + '</span>'; cw.appendChild(axis); i++; } for (var i = 0; i < 5; i++) { var ayis = document.createElement("div"); ayis.style.width = "30px"; ayis.style.position = "absolute"; ayis.style.top = (36 * i) + (20 - 6) + "px"; ayis.style.left = "140px"; ayis.innerHTML = '<span style="font-size:12px; color:grey;"> ' + Math.round(max - (max / 5) * i) + '</span>'; cw.appendChild(ayis); var line = document.createElement("div"); line.setAttribute("style", "width:580px; left:165px; border-top:1px dotted grey; height:1px; line-height:1px; display:block; overflow:hidden; position:absolute; "); line.style.top = (36 * i) + 20 + "px"; cw.appendChild(line); } } var data = [10,60,50,30,40,80,20,70,100,90]; renderChart(data); </script> </body> </html>
運(yùn)行效果如下:
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JavaScript canvas基于數(shù)組生成柱狀圖代碼實(shí)例
- JS highcharts動(dòng)態(tài)柱狀圖原理及實(shí)現(xiàn)
- angularjs實(shí)現(xiàn)柱狀圖動(dòng)態(tài)加載的示例
- 利用D3.js實(shí)現(xiàn)最簡(jiǎn)單的柱狀圖示例代碼
- D3.js實(shí)現(xiàn)柱狀圖的方法詳解
- jQuery.Highcharts.js繪制柱狀圖餅狀圖曲線圖
- JavaScript根據(jù)數(shù)據(jù)生成百分比圖和柱狀圖的實(shí)例代碼
- Javascript實(shí)時(shí)柱狀圖實(shí)現(xiàn)代碼
- JS使用canvas技術(shù)模仿echarts柱狀圖
相關(guān)文章
ElementUI table無縫循環(huán)滾動(dòng)的示例代碼
這篇文章主要介紹了ElementUI table無縫循環(huán)滾動(dòng)的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08微信小程序自定義tabbar欄實(shí)現(xiàn)過程講解
tabBar相對(duì)而言用的還是比較多的,但是用起來并沒有難,下面這篇文章主要給大家介紹了關(guān)于微信小程序全局配置之tabBar的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02微信小程序?qū)崿F(xiàn)簡(jiǎn)單評(píng)論功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單評(píng)論功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11javascript 拽拉效果 供JS初學(xué)者學(xué)習(xí)參考
超精簡(jiǎn)的拽拉效果JS,并且還是同時(shí)支持IE和FF。 可以給與其他剛開始學(xué)習(xí)JS的朋友作為參考和學(xué)習(xí)。2008-07-07MUI 實(shí)現(xiàn)側(cè)滑菜單及其主體部分上下滑動(dòng)的方法
下面小編就為大家分享一篇MUI 實(shí)現(xiàn)側(cè)滑菜單及其主體部分上下滑動(dòng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01JavaScript前端開發(fā)時(shí)數(shù)值運(yùn)算的小技巧
這篇文章主要介紹了JavaScript前端開發(fā)時(shí)數(shù)值運(yùn)算的小技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07