zoukankan      html  css  js  c++  java
  • ECharts整合HT for Web的网络拓扑图应用

    ECharts图形组件在1.0公布的时候我就已经有所关注。今天在做项目的时候遇到了图标的需求,在HTfor Web上也有图形组件的功能。可是在尝试了下详细实现后,发现HT for Web的图形组件是以矢量的格式来呈现的,在展现上能够有非常多的自己定义和数据绑定等特性,可是其在交互的设计上就显得比較弱势。

    因此我就在想。是否可在项目中将ECharts图形组件取代HTfor Web的图形组件呢,在对ECharts做了初步的了解后。发现两者都是基于Divcanvas的应用。于是我開始做大胆的尝试,最终,功夫不负苦心人,以下就来看下Demo的详细展现效果吧:


    这是从ECharts官方Demo中拷贝下来的两个样例。当中在布局上用到了HTfor WebSplitView组件将两个chart以上下比例32切割。

    光看这个样例并无法非常直观的看出EChartsHT for Web应用的结合,接下来我们来看下HT for Web拓扑图组件与ECharts图形组件的整合效果:


    在这个Demo中就整合了HTfor WebTree组件,GraphView拓扑图组件和ECharts图形组件。并採用HTfor WebSplitView组件做布局。

    说了这么多。如今我们来看下详细代码的实现吧:

    ht.Chart = function(option){
        var self = this,
                view = self._view = document.createElement('div');
        view.style.position = 'absolute';
        view.style.setProperty('box-sizing', 'border-box', null);
        self._option = option;
    };
    ht.Default.def('ht.Chart', Object, {
        ms_v: 1,
        ms_fire: 1,
        ms_ac: ['chart', 'option', 'isFirst'],
        validateImpl: function(){
            var self = this,
                    chart = self._chart;
            if(!chart){
                chart = self._chart = echarts.init(self.getView());
                chart.setOption(self._option);
            }
            chart.resize();
        }
    });

    你没有看错,最核心的代码就这些,以下就来介绍下代码设计的详细逻辑:

    这串代码事实上非常好理解,就是在系统中定义ht.Chart这个类,然后让类具有viewfire的特性。最后在validateImpl方法中详细实现chart的初始化和渲染。

    详细的使用就是通过newkeyword来创建ht.Chart的实例。并传入标准的ECharts配置參数,或在new的时候不传參。在创建对象后,通过setOption(option)方法来设置。

    最后我为大家录制了详细页面的操作效果视频,欢迎大家赞赏。

    http://v.youku.com/v_show/id_XOTEyNzUyNDIw.html


  • 相关阅读:
    IE hasLayout详解
    seajs引入jquery
    jquery实现轮播插件
    CSS视觉格式化模型
    js事件冒泡和事件捕获详解
    你尽力了么===BY cloudsky
    前向否定界定符 python正则表达式不匹配某个字符串 以及无捕获组和命名组(转)
    php safe mode bypass all <转>
    WAF指纹探测及识别技术<freebuf>
    linux集群管理<转>
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7220973.html
Copyright © 2011-2022 走看看