ichart.js绘制虚线、平均分虚线效果的实现代码_javascript技巧

ichart.js绘制虚线、平均分虚线效果的实现代码

var Data=new Array();
    Data[0] = {
      labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"],
      datasets : [
        {
          name : '优秀率',
          color:'#1dbcfe',
          line_width:4,
          value : [80,75,92,62,0]
        }
      ]
    }
    Data[1] = {
      labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"],
      datasets : [
        {
          name : '优秀率',
          color:'#1dbcfe',
          line_width:4,
          value : [50,11,62,77,90]
        }
      ]
    }
    Data[2] = {
      labels : ["第一单元","第二单元","第三单元","第四单元","第五单元"],
      datasets : [
        {
          name : '优秀率',
          color:'#1dbcfe',
          line_width:4,
          value : [80,51,32,44,80]
        }
      ]
    } 

    var _bodyWidth=$('body').width()-16;
    $('.item').each(function(i){
      var _id=$(this).find('.canvas-wrap').attr('id');
      var chart = new iChart.LineBasic2D({
        render : _id,
        data: Data[i].datasets,
        align:'center',
        border:0,
        width : _bodyWidth*2,
        height : _bodyWidth*1.2,
        background_color:'#fafafa',
        animation : true,//开启过渡动画
        animation_duration:600,//600ms完成动画 

        sub_option : {
          smooth : true,
          hollow:false,
          hollow_inside:false,
          point_size:16,
          listeners : {
            parseText : function(r, t) {
              return t+'%';
            }
          },
          label:{fontsize:24,color:'#333'},
        },
        coordinate:{
          width:_bodyWidth*1.6,
          valid_width:_bodyWidth*1.4,
          height:_bodyWidth*1.6*.5,
          striped_factor : 0.18,
          axis:{
            color:'#aaa',
            width:[0,0,8,0]
          },
          scale:[{
             position:'left',
             start_scale:0,
             end_scale:100,
             scale_space:20,
             scale_size:2,
             scale_enable : false,
             label : {color:'#999',fontsize:24},
             scale_color:'#999'
          },{
             position:'bottom',
             label : {color:'#999',fontsize:24},
             scale_enable : false,
             labels:Data[i].labels
          }]
        } 

      });
      /**
       *自定义组件,画平均线。
       */
      chart.plugin(new iChart.Custom({
          drawFn:function(){
            /**
             *计算平均值的高度(坐标Y值)
             */
             var _total=0;
            $.each(Data[i].datasets[0].value,function(i,val){
              _total+=val;
            });
            var avg = _total/Data[i].datasets[0].value.length,//计算出的平均分写在这即可
              coo = chart.getCoordinate(),
              x = coo.get('originx'),
              W = coo.width,
              S = coo.getScale('left'),
              H = coo.height,
              h = (avg - S.start) * H / S.distance,
              y = chart.y + H - h;
            for(xi=x;xi<=(x+W);xi=xi+32){
              chart.target.line(xi,y,xi+16,y,2,'#fe941c');
            }
            chart.target.textAlign('start')
            .textBaseline('middle')
            .textFont('500 20px Verdana')
            .fillText('平均战胜率'+avg+'%',x+W-100,y-20,false,'#fe941c');
          }
      }));
      chart.draw();
    });

以上代码是绘制多个折线图的js示例,以及在每个折线图内绘制平均分虚线的方法。

ichart.js是一个十分不错的图标绘制js,缺点是在移动端需要先设置两倍大小,再用css和js手动缩小到正常范围,以使其在屏幕上保持高清。

官网有绘制平均线的示例,但是没有虚线的,而一般为了不混淆,平均线都是使用虚线绘制的。这里我只是循环绘制了n端直线,算是一个变通的方法。如有更好的方法请留言哦谢谢。

以上这篇ichart.js绘制虚线、平均分虚线效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索虚线
, ichart.js
平均分虚线
ios 绘制虚线、android 绘制虚线、ps绘制虚线、canvas绘制虚线、ios 绘制虚线 分割线,以便于您获取更多的相关知识。

时间: 2024-11-10 00:36:05

ichart.js绘制虚线、平均分虚线效果的实现代码_javascript技巧的相关文章

js实现拉幕效果的广告代码_javascript技巧

本文实例讲述了js实现拉幕效果的广告代码.分享给大家供大家参考.具体如下: 这是一款拉幕效果的广告代码,广告图片像窗帘的幕布一样慢慢的被拉上去了,缩小至一定大小后定格,目前来说,在一些大型的门户网站中仍然可以见到这种效果. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-lm-style-adv-pic-style-codes/ 具体代码如下: <html> <head> <meta http-equiv="C

JS实现弹性漂浮效果的广告代码_javascript技巧

本文实例讲述了JS实现弹性漂浮效果的广告代码.分享给大家供大家参考.具体如下: 这里介绍一款JS弹性漂浮广告代码,碰到网页浏览器的边缘就会顺着弹力的方向自动漂浮下去,不停的在网页上漂来漂去,漂浮广告代码是很早时候就有的代码了,使用广泛,而且做为广告来说,好像效果还不错,因为它在不停的动,让人在视觉上感觉到有一种吸引力.其中的JS代码你可以扣出来保存在一个单独的JS文件中,使用时调用即可. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-mo

js确认删除对话框效果的示例代码_javascript技巧

效果如下: css文件delcss.css 代码如下: 复制代码 代码如下: *{ margin:0; padding:0;}#div1{ width:300px; height:100px; border-radius:10px; background:#f60; box-shadow:5px 5px 10px #ccc; position:absolute; left:50%; margin-left:-150px; z-index:2; opacity:0; filter:alpha(op

用JS实现轮播图效果(二)_javascript技巧

在上一篇用JS实现图片轮播效果代码(一)的基础上,增加了左右箭头的响应事件,实现了点击左右箭头也可以让图片滚动: js代码如下: window.onload = function(){ //轮播初始化 var lunbo = document.getElementById('content'); var imgs = lunbo.getElementsByTagName('img'); var uls = lunbo.getElementsByTagName('ul'); var lis = l

JS平滑无缝滚动效果的实现代码_javascript技巧

本文我们实现纯JS方式的滚动广告效果. 先show一下成品: 首先是网页样式: #demo { background: #FFF; overflow:hidden; border: 1px dashed #CCC; width: 1280px; height:200px; } #demo img { border: 3px solid #F2F2F2; } #indemo { float: left; width: 800%; } #demo1 { float: left; } #demo2 {

使用JS实现图片展示瀑布流效果的实例代码_javascript技巧

不知大家有没有发现,一般的图片展示网站都会使用瀑布流效果,所谓的瀑布流 就是网站内的图片不会一下子全缓存出来,而是等你滚动到一定的距离的时候, 下面的图片才会继续缓存,并且图片也是随机出现的,只是宽度一样,高度并不 一样,高高低低就像瀑布一样,所以叫做瀑布流效果.下面我把代码给大家,大家 随便下几张图片试试. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu

【JS+CSS3】实现带预览图幻灯片效果的示例代码_javascript技巧

一.前期准备 1.1 案例分析 适用场景:单例布局 1.2 方法论 V视图 HTML+CSS+调试 C js实现控制流程 D数据 优化扩展 二.代码 结构 <div class="slider"><!-- 特效区 --> <div class="main"><!-- 主视图区 --> <div class="main_i"> <div class="caption&quo

JS实现仿QQ面板的手风琴效果折叠菜单代码_javascript技巧

本文实例讲述了JS实现仿QQ面板的手风琴效果折叠菜单代码.分享给大家供大家参考.具体如下: 这是一款简单实用的垂直导航菜单,有人把这种风格称为"手风琴"菜单,类似仿QQ面板的折叠菜单,鼠标放在任意一个菜单上,它会展开所属的二级菜单,很不错的选择,以前就分享过此类菜单,这次经过了代码优化升级,更人性化了. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-f-qq-sfq-style-menu-codes/ 具体代码如下: <!

JS实现淡入淡出图片效果的方法分析_javascript技巧

本文实例讲述了JS实现淡入淡出图片效果的方法.分享给大家供大家参考,具体如下: 效果:鼠标移入时,图片由半透明逐渐变成清晰,移出时,由清晰变为半透明 分析:用变量来储存透明度,因为元素.style.alpha不能直接增加或减少 核心代码: window.onload=function(){ var oDiv=document.getElementById("div1"); var timer=null; var alpha=30; oDiv.onmouseover=function()