成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

iChart--組件定制

vvpale / 2498人閱讀

摘要:使用純語(yǔ)言利用的標(biāo)簽繪制各式圖形。致力于為您的應(yīng)用提供簡(jiǎn)單直觀可交互的體驗(yàn)級(jí)圖表組件。目前支持餅圖環(huán)形圖折線圖面積圖柱形圖條形圖。是基于協(xié)議的開(kāi)源項(xiàng)目。陰影圖形效果圖其他形狀的圖標(biāo)類似,不再陳述。

導(dǎo)語(yǔ)

ichartjs是一款基于HTML5的圖形庫(kù)。使用純javascript語(yǔ)言, 利用HTML5的canvas標(biāo)簽繪制各式圖形。 ichartjs致力于為您的應(yīng)用提供簡(jiǎn)單、直觀、可交互的體驗(yàn)級(jí)圖表組件。是WEB/APP圖表展示方面的解決方案 。如果你正在開(kāi)發(fā)HTML5的應(yīng)用,ichartjs正好適合您。 ichartjs目前支持餅圖、環(huán)形圖、折線圖、面積圖、柱形圖、條形圖。ichartjs是基于Apache License 2.0協(xié)議的開(kāi)源項(xiàng)目。

No1.一分鐘快速入門(mén)教程-Hello World

千里之行,始于足下。我們先從Hello World開(kāi)始。

首先引入js文件
代碼片段
//定義數(shù)據(jù)
$(function(){   
            var chart = new iChart.Column2D({
            render : "canvasDiv",//渲染的Dom目標(biāo),canvasDiv為Dom的ID
            data: data,//綁定數(shù)據(jù)
            title : "Hello World"s Height In Alphabet",//設(shè)置標(biāo)題
            width : 800,//設(shè)置寬度,默認(rèn)單位為px
            height : 400,//設(shè)置高度,默認(rèn)單位為px
            shadow:true,//激活陰影
            shadow_color:"#c7c7c7",//設(shè)置陰影顏色
            coordinate:{//配置自定義坐標(biāo)軸
            scale:[{//配置自定義值軸
                position:"left",//配置左值軸 
                start_scale:0,//設(shè)置開(kāi)始刻度為0
                end_scale:26,//設(shè)置結(jié)束刻度為26
                scale_space:2,//設(shè)置刻度間距
                listeners:{//配置事件
                    parseText:function(t,x,y){//設(shè)置解析值軸文本
                        return {text:t+" cm"}
                    }
                }
            }]
        }          
運(yùn)行結(jié)果

至此,簡(jiǎn)單的入門(mén)已經(jīng)完成,但是不能僅限于此,拓展下思路,如果柱狀圖不僅僅是單色填充,而是各式各樣的圖形,或者具有漸變效果的填充,該如何實(shí)現(xiàn)呢?

No2.定制屬于自己的柱狀圖

首先看看我想實(shí)現(xiàn)的效果

再有:

查閱了ichart官方的demo和文檔,未看到這方面的效果,只能自己動(dòng)手,豐衣足食了。

字符串圖形

首先實(shí)現(xiàn)一個(gè)相對(duì)簡(jiǎn)單的,繪制各種字符串。由于ichart底層是基于canvas的,所以只要拿到畫(huà)筆,想畫(huà)什么畫(huà)什么,想畫(huà)哪里畫(huà)哪里。
首先運(yùn)行上面的HelloWorld,單步調(diào)試,找到最終繪制的入口。

doDraw:function(_){
    if(_.get("actived")){
        _.drawRectangle();
    }
},

這里就是最終繪制的入口,可見(jiàn)源碼中僅僅可以繪制矩形,好單一的感覺(jué)。
修改后的這個(gè)的入口:

doDraw:function(_){
    if(_.get("actived")){
      var _ = this._();
      var type = _.options.type;
      if(type === "slash"){
        _.drawSlash();
      }else if(type === "innerRect"){
        _.drawInnerRect();
      }else if(type === "wire"){
        _.drawWire();
      }else if(type === "star"){
        _.drawStar();
      }else if(type === "exclamation"){
        _.drawExclamation();
      }else if(type ==="innerRectAndLine"){
        _.drawInnerRectAndLine();
      }else if(type === "judge"){
        _.drawJudge();  
      }else{
        _.drawRectangle();
      }
    }
  },

默認(rèn)依然繪制矩形,但是根據(jù)傳入的類別,可以繪制圖形的圖形,如type==="exclamation",程序會(huì)調(diào)用_.drawExclamation();方法,我們看看drawExclamation()方法的定義:

drawExclamation: function() {                                                  
   var _ = this._();
   var x = _.get(_.X), y = _.get(_.Y), w=_.get(_.W), h=_.get(_.H), border=_.get("border"), f_color=_.get("f_color"), shadow=_.get("shadow");
   _.T.box(
    _.get(_.X),
    _.get(_.Y),
    _.get(_.W),
    _.get(_.H),
    _.get("border"),
    _.get("f_color"),
    _.get("shadow"));
   var character = _.options.character && _.options.character.value;
   _.T.textStyle(_.L, "middle", $.getFont(_.get("fontweight"), _.get("fontsize"), _.get("font")));
   _.T.fillText(character, x + w/2 - _.T.measureText(character)/2, y+h/2, _.get("textwidth"), border.color);
 },

代碼中顯示,首先繪制矩形Box,其次繪制傳入的文字,這樣我們的貨幣匯率表就很容易實(shí)現(xiàn)了。

陰影圖形
drawSlash: function(){
    var _ = this._();
    var x = _.get(_.X), y = _.get(_.Y), w=_.get(_.W), h=_.get(_.H), border=_.get("border"), f_color=_.get("f_color"), shadow=_.get("shadow");
    _.T.box(
      _.get(_.X),
      _.get(_.Y),
      _.get(_.W),
      _.get(_.H),
      _.get("border"),
      _.get("f_color"),
      _.get("shadow"));
    var difcount = 9;
    var a = h/w, dx = parseInt(w/difcount), dy = dx * a;
    for(var i = x + dx;i<= x+w; i+=dx){
      var x0 = i - border.width,y0 = y + border.width;
      var x1 = x + border.width, y1 = y + dy * (i-x)/dx - border.width;
      _.T.line(x0,y0,x1,y1, border.width, border.color, false);
      if(i !== x){
        var x0 = i - border.width,y0 = y + h - border.width;
        var x1 = x + w - border.width, y1 = y + dy * (i-x)/dx - border.width;
        _.T.line(x0,y0,x1,y1, border.width, border.color, false);
      }
    }
  },

效果圖:

其他形狀的圖標(biāo)類似,不再陳述。多看看一些效果圖吧:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82026.html

相關(guān)文章

  • iChart--地圖顯示人口統(tǒng)計(jì)

    摘要:導(dǎo)語(yǔ)大數(shù)據(jù)呈現(xiàn)應(yīng)用越來(lái)越廣泛支持大數(shù)據(jù)呈現(xiàn)的,水平較高的有然而在地圖呈現(xiàn)的功能上,大都只能繪制矢量地圖,而不能呈現(xiàn)具有真實(shí)效果的地圖鑒于此,本文重點(diǎn)在于如何制作一張,即可以看到真實(shí)效果,又能進(jìn)行交互的矢量地圖先睹為快若有所思技術(shù)選擇想實(shí)現(xiàn)上 導(dǎo)語(yǔ) 大數(shù)據(jù)呈現(xiàn)應(yīng)用越來(lái)越廣泛,支持大數(shù)據(jù)呈現(xiàn)的SDK,水平較高的有echarts、highchart、D3;然而在地圖呈現(xiàn)的功能上,大都只能繪制...

    mtunique 評(píng)論0 收藏0
  • 常用的數(shù)據(jù)可視化工具

    摘要:俗話說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。是一個(gè)地圖庫(kù),主要面向數(shù)據(jù)可視化用戶。 俗話說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。 showImg...

    philadelphia 評(píng)論0 收藏0
  • # Web Components 全攬

    摘要:定制元素可以在原生元素外創(chuàng)建定制元素。此定制元素內(nèi)部有一個(gè)加號(hào)按鈕,一個(gè)減號(hào)按鈕,一個(gè)顯示當(dāng)前值。此主題會(huì)在下一部分內(nèi)介紹。定制元素的屬性元素的屬性被稱為,對(duì)象內(nèi)的屬性被稱為。做響應(yīng)的同步處理。 Web Components 全攬 Web Components技術(shù)可以把一組相關(guān)的HTML、JS代碼和CSS風(fēng)格打包成為一個(gè)自包含的組件,只要使用大家熟悉的標(biāo)簽即可引入此組件。Web Com...

    legendmohe 評(píng)論0 收藏0
  • UXCore:一個(gè)兼容主流瀏覽器的 React PC 組件庫(kù)

    摘要:為什么我們需要是一個(gè)基于的套件庫(kù),兼容。全面的國(guó)際化支持所有組件的內(nèi)置文案支持國(guó)際化,大部分文案用戶可以主動(dòng)設(shè)置。持續(xù)的功能增強(qiáng)借助社區(qū)和團(tuán)隊(duì)自身的力量,會(huì)在現(xiàn)有基礎(chǔ)上優(yōu)化使用體驗(yàn),增強(qiáng)組件功能,添加更多常用組件來(lái)滿足不同場(chǎng)景的需求。 showImg(https://gw.alicdn.com/tps/TB1TVapKFXXXXbbXpXXXXXXXXXX-1000-500.png);...

    Big_fat_cat 評(píng)論0 收藏0
  • 字節(jié)跳動(dòng)旗下 ArcoDesign 開(kāi)源啦

    摘要:腳手架工具封裝了物料操作命令,幫助用戶快速創(chuàng)建物料項(xiàng)目并將其發(fā)布至物料平臺(tái)。非常重視每一位開(kāi)發(fā)者和用戶的意見(jiàn),希望大家踴躍反饋,積極共建。 ArcoDesign 提供的能力 完善的基礎(chǔ)組件 基于 ArcoDesign 設(shè)計(jì)規(guī)范,Arco 提供了 67 個(gè)基礎(chǔ)組件,這些基礎(chǔ)組件足以支撐絕大多數(shù)的業(yè)務(wù)需求。同時(shí),Arco 在這些基礎(chǔ)組件的設(shè)計(jì)上,也開(kāi)放了細(xì)粒度的配置,方便后續(xù)拓...

    jayce 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<