vue實現一個動效柱狀圖
接手了一個需求的時候,其中有個 UI圖是這樣的:
按照 PM本來的意思,這張圖中只有那幾個數字是從介面獲取的,而且從介面獲取到的每項數字的值,與目前標註的數字相差不會超過 10%,所以柱狀圖的條形高度不用管,直接一張圖片靜態的就行了,這確實很省事,三下五除二就弄完。
不過,作為一個老(xian)實(de)正(dan)直(teng)的程式設計師,怎麼可以容忍弄虛作假呢,我心中默默計算了下,用程式碼把這張圖畫出來也要不了多長時間,不會耽誤專案進度的,於是開搞。
首先,先把圖拆解成幾份可以用程式碼畫出來的圖形,如下:
- 柱狀圖形,就是圓角長方形,豎直紅色柱與豎直紅色柱之間的空白,也是一個豎直的圓角長方形,只不過是透明的,作用是底部構建圓角
- 底部的基座,是一個水平長方形,只不過這個長方形除了看到的那一部分紅色外,還有z-index大於紅色豎直長方形、小於透明柱狀上半部分,用於遮掩紅色柱底部與圓角透明柱底部出現的空白
- 因為底部基座的高度其實比視覺上第一眼看過去更高的,所以無法使用
border-radius
屬性產生圓角,否則就露餡了,因而在底部基座的最左邊和最右邊,還各有一個小的圓角長方形,用於產生圓角讓基座的兩邊看起來圓滑
弄清楚了上述幾點後,樣式就比較好寫了
然後就是各個豎直紅色柱的高度計算。
這也很簡單,給最高的紅色柱定一個高度,其他紅色柱以這個最高的紅色柱為基準計算高度
例如,最高紅色柱定為 200px
,最高紅色柱的數字值為 987
1
個數值對應的 px
高度為 200px / 1000
,第二根紅色柱的數字值為 230
,則其高度就為 230 * (200px / 1000)
這樣,就能計算出所有紅色柱對應的高度了
至於如何讓紅色柱的高度從 0
動態增長到該有的高度,只需要使用一個 CSS3
的 transition
屬性即可,最開始時將所有紅色柱的高度設為 0
,然後再使用 js
將高度設為該有的值就 ok
了
最終實現的效果如下:
本文所實現動畫的可執行程式碼已經放到 Github了,程式碼的註釋算是比較清晰的,有興趣的可以自行下載執行。
相關推薦
vue實現一個動效柱狀圖
接手了一個需求的時候,其中有個 UI圖是這樣的: 按照 PM本來的意思,這張圖中只有那幾個數字是從介面獲取的,而且從介面獲取到的每項數字的值,與目前標註的數字相差不會超過 10%,所以柱狀圖的條形高度不用管,直接一張圖片靜態的就行了,這確實很省事,三下五除
ECharts的學習(一):製作一個簡單的柱狀圖
<!DOCTYPE html> <html> <head> <meta charset="utf-8"><meta na
vue 中使用vue-echarts-v3編寫chart柱狀圖,動態展示資料
效果如下 需求: 1、縱座標為數字,並且動態變化 2、柱狀圖頂部展示內容 3、滑鼠移動到柱狀圖展示內容 4、圖表要根據查詢結果動態展示 開始: <!-- 郵件推送圖示分析 --> <template> <div>
vue中實習ECharts的柱狀圖
<!DOCTYPE html><html style="height: 100%"><!--50%半屏,100%全屏--><head><meta charset="utf-8"><title>柱狀圖<
炫酷的運動柱狀圖統計動效
要用到柱狀圖,第一時間想到去echart看看示例扒一套程式碼下來。看了官方教程後感覺不太適合本專案,考慮後覺得自己動手寫個圖示比較省事而且不用引包。那就開始吧! 柱狀圖 滾動圖表首先得有一些柱子呀,那我們就來早柱子,這些都是個寬度相等,高度按比例*設定好的最高高度的柱子。通過flex
用echarts實現一個柱狀圖(前後臺原始碼)
後臺程式碼 -------------------------controller------------------------------------- /** * <p>人員結構-政治面貌</
圖標插件--jqplot實現柱狀圖及餅圖,表盤圖演示樣例
itl nbsp left 柱狀圖 draw ted ner ann name 柱狀圖 在jqPlot圖表插件使用說明(一)中,我們已經能夠通過jqPlot繪制出比較簡單的線形圖。通過查看源碼。我們也能夠看出,線形圖是jqPlot默認的圖表類型:
ECharts 報表事件聯動系列三:柱狀圖,餅狀圖實現聯動
餅狀圖 img and int js函數 radius func get 執行 源碼如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type
elasticsearch時間柱狀圖聚合java實現
需求:統計每天有多少條資料,以及某欄位的平均值。 1. 使用DateHistogramAggregationBuilder按天統計,再嵌入aggs取平均值。 如果要對結果進行排序,在 AggregationBuilders 加上 .order(Histogram.Order.COUN
實現柱狀圖與條形圖的結合,MPAndroidChart的簡單使用
先貼效果圖: 這種樣式的統計表格也是比較常用的,下面直接貼程式碼: public class ChartActivity extends BaseActivity { @BindView(R.id.chart1) MyCombinedChart mChart1;//完成
SSM框架下柱狀圖的實現
和前面的餅圖不一樣,我的柱狀圖實現在ajax中使用了陣列,只需要將對應的值取出來(而不需要關心其他的值是否為空)。就要簡單一點,使用普通的Mapper.xml就可以應付。話不多說,上碼: 1. Mapper.xml和Mapper.java: xml: <!-- 統計男女人數 -->
vue專案中使用Echarts 動態更改圖表資料 , Vue 折線圖、柱狀圖等圖表動態重新整理 ,
問題:在vue元件中,用echarts外掛 動態獲取、修改圖表資料 解決:已解決! 第一步:開啟cmd命令視窗 安裝echarts依賴 安裝:npm install echarts -S 第二步:在main.js中全域性引入 //引入echarts的圖表外掛
echarts 柱狀圖的選中模式實現-被選中變色和再次選中為取消變色
title sele alt hang arc 技術 etop code mage 方法: 1 function barCharShow(curr_dim,divId,result_data){ 2 mutilDim(curr_dim);//維度信息 3
d3.js(v5.7)完整地畫一個柱狀圖
img edi http 代碼 坐標 不能 畫布 分享 ueditor 一、首先定義畫布大小以及繪畫區域的位置(總不能頂著屏幕邊沿畫吧) 代碼: 圖示: 二、橫、縱向坐標軸 代碼: 圖示:
柱狀圖多系列php動態實現(ec)
<?php require_once 'data.php'; $arr1=$a->sum('answer','ask_id=1'); $arr2=$a->sum('answer','ask_id=2'); $arr3=$a->sum('answer','ask_id=3');
【Echarts】簡單實現——第一個柱狀圖的實現(在後臺動態獲取資料)
第一次接觸這個東西,感覺還有點濛濛的。經過兩天的努力終於搞明白。下面我用自己的方式實現以下,方便大家理解。 下面是我使用一個簡單的mvc框架來實現這個demo。 效果圖: 步驟: 1、新建一個mvc框架的專案。 2、新建控制器:EchartsBa
D3.js實現帶動畫效果的柱狀圖
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content
Vue+echart折線圖和柱狀圖
先執行 npm i echarts -s 命令 在頁面中 匯入 import echarts from 'echarts'; 資料格式 ajax請求回來後(vm=this) 把資料賦值到圖表上,後在呼叫一次圖表的方法。由於資料是非同步載入的
echarts畫一個折現/柱狀混合圖
上程式碼: myChart=echarts.init(document.getElementById('gaikuangDiv')); option={ tooltip
利用Echarts實現堆疊柱狀圖
最近在開發公司的專案過程中遇到一個有關柱狀圖的問題,需要實現堆疊的柱狀圖,也就是一個柱體中可以允許幾種類別的元素,如下圖所示: 要完成這個功能首先要下載echarts.js這個外掛,這個網上一找一大堆,下載完成後將這個js放在你專案的某個資料夾下,並且引用它:<sc