不是恰饭哈,只是最近刚巧一个项目要页面上做比较多的图表,用专业点的术语叫数据透视页。
所以找了下看什么现成的控件适合使用。

要求比较低
部署简易、兼容微信、支持柱状、折线、雷达图、能找到开发团队交流反馈bug就好。

后来找到了 uCharts
官网:https://www.ucharts.cn/
git: https://gitee.com/uCharts/uCharts
文档: http://doc.ucharts.cn/

项目需要保密,但我用它美化了一下自己的博客,右上角增加了实时的热门tags,用了控件的词云图 类型实现。
QQ截图20191017223025.png

以下是部署简要笔记

HTML 部分

<head>
...
    <!--//增加jquery和uchart组件-->
    <!--//jquery并不是必须,只是下文js简化书写用到了选择器-->
    <script src="/blog/admin/js/jquery.js"></script>
    <script src="/blog/my/js/u-charts.min.js"></script>
...
</head>

<body>
...

<!--//词云图-->
<div>
<h3 class="widget-title">热门 Tags</h3>
    <canvas id="uchartTags" width="210px" height="200px" style="border:0;">
    Your browser does not support the HTML5 canvas tag.
    </canvas>
</div>

...

JS部分

//在引用  u-charts.js 之后

var canvaWord; //uChart对象
var colors = ['#227','#348','#469','#57A','#68C','#79D','#8AE']; //自定义的tags的色盘,不定义则默认为彩色

function showWords(canId,chartData){

    canvaWord=new Charts({
        canvasId: canId,
        type: 'word',
        background:'transparent',
        colors:colors,
        pixelRatio:1,
        series: chartData.series,
        width: 210,
        height: 200,
        extra: {
            word: {
                type: 'normal'
            }
        }
    });
}

//定义关键词的点击交互事件
$('#uchartTags')[0].onmousedown=function(e) {
    canvaWord.showToolTip(getH5Offset(e), {
    format: function (item) {
        window.open('/blog/index.php/tag/'+ item.name ,'_blank',''); //打开关键词的检索结果页
        return item.name + ':' + item.data 
    }
    });
};

//从接口加载关键词的数据
$.get("/blog/my/api/tagsmap.php",function(res){
    if(res.code==200){
        showWords("uchartTags",res); //绘画词云图
    }else{
        console.log("load tags api err.");
    }
},"json");

emm相当简单,不错不错。就决定用它了

标签: js, JavaScript, H5, uCharts, Canvas

添加新评论