javascript实现动态统计图开发实例


Posted in Javascript onNovember 21, 2015

本文实例讲述了javascript实现动态统计图的代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

javascript实现动态统计图开发实例

具体代码如下
html代码:

<div id="content">
    <div class="legend">
    <h1>汽车销量:</h1>
    <div class="skills">
    <ul>
    <li class="jq">大众</li>
    <li class="css">丰田</li>
    <li class="html">别克</li>
    <li class="php">福特</li>
    <li class="sql">长安</li>
    </ul>
    </div>
    </div>
    <div id="diagram"></div>
    </div>
    <div class="get">
    <div class="arc">
    <span class="text">大众</span>
    <input type="hidden" class="percent" value="95" />
    <input type="hidden" class="color" value="#97BE0D" />
    </div>
    <div class="arc">
    <span class="text">丰田</span>
    <input type="hidden" class="percent" value="90" />
    <input type="hidden" class="color" value="#D84F5F" />
    </div>
    <div class="arc">
    <span class="text">别克</span>
    <input type="hidden" class="percent" value="80" />
    <input type="hidden" class="color" value="#88B8E6" />
    </div>
    <div class="arc">
    <span class="text">福特</span>
    <input type="hidden" class="percent" value="53" />
    <input type="hidden" class="color" value="#BEDBE9" />
    </div>
    <div class="arc">
    <span class="text">长安</span>
    <input type="hidden" class="percent" value="45" />
    <input type="hidden" class="color" value="#EDEBEE" />
    </div>
    </div>

css代码:

#content {
position:absolute;
top:50%;
left:50%;
margin:-340px 0 0 -450px;
width:900px;
height:600px;
}
.legend {
float:left;
width:250px;
margin-top:140px;
}
#content h1 {
font-family:'Cabin Sketch', arial, serif;
text-shadow:3px 3px 0 #ddd;
color:#193340;
font-size:40px;
margin-bottom:40px;
text-align:right;
}
.skills {
float:left;
clear:both;
width:100%;
}
.skills ul,
.skills li {
display:block;
list-style:none;
margin:0;
padding:0;
}
.skills li {
float:right;
clear:both;
padding:0 15px;
height:35px;
line-height:35px;
color:#fff;
margin-bottom:1px;
font-size:18px;
}

js代码:

var o = {
      init: function () {
        this.diagram();
      },
      random: function (l, u) {
        return Math.floor((Math.random() * (u - l + 1)) + l);
      },
      diagram: function () {
        var r = Raphael('diagram', 600, 600),
          rad = 73;
        r.circle(300, 300, 85).attr({ stroke: 'none', fill: '#193340' });
        var title = r.text(300, 300, 'loading...').attr({
          font: '20px Arial',
          fill: '#fff'
        }).toFront();
        r.customAttributes.arc = function (value, color, rad) {
          var v = 3.6 * value,
            alpha = v == 360 ? 359.99 : v,
            random = o.random(91, 240),
            a = (random - alpha) * Math.PI / 180,
            b = random * Math.PI / 180,
            sx = 300 + rad * Math.cos(b),
            sy = 300 - rad * Math.sin(b),
            x = 300 + rad * Math.cos(a),
            y = 300 - rad * Math.sin(a),
            path = [['M', sx, sy], ['A', rad, rad, 0, +(alpha > 180), 1, x, y]];
          return { path: path, stroke: color }
        }
        $('.get').find('.arc').each(function (i) {
          var t = $(this),
            color = t.find('.color').val(),
            value = t.find('.percent').val(),
            text = t.find('.text').text();
          rad += 30;
          var z = r.path().attr({ arc: [value, color, rad], 'stroke-width': 26 });
          z.mouseover(function () {
            this.animate({ 'stroke-width': 50, opacity: .75 }, 1000, 'elastic');
            if (Raphael.type != 'VML') //solves IE problem
    this.toFront();
            title.animate({ opacity: 0 }, 500, '>', function () {
              this.attr({ text: text + '\n' + value + '%' }).animate({ opacity: 1 }, 500, '<');
            });
          }).mouseout(function () {
            this.animate({ 'stroke-width': 26, opacity: 1 }, 1000, 'elastic');
          });
        });
      }
    }
    $(function () { o.init(); });

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery获取选中的文本和值的方法
Jul 08 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
jquery通过closest选择器修改上级元素的方法
Mar 17 Javascript
跟我学习javascript的Date对象
Nov 19 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
微信小程序 chooseImage选择图片或者拍照
Apr 07 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
vue 将页面公用的头部组件化的方法
Dec 18 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 Javascript
jquery实现简易验证插件封装
Sep 13 jQuery
微信小程序实现录音Record功能
May 09 Javascript
js实现索引图片切换效果
Nov 21 #Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 #Javascript
javascript实现Email邮件显示与删除功能
Nov 21 #Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 #Javascript
Jquery ajax基础教程
Nov 20 #Javascript
谈谈Jquery ajax中success和complete有哪些不同点
Nov 20 #Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 #Javascript
You might like
zf框架的registry(注册表)使用示例
2014/03/13 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
小程序转发探索示例
2019/02/19 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
python函数返回多个值的示例方法
2013/12/04 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python发送邮件实例分享
2017/07/28 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
详解Django配置优化方法
2019/11/18 Python
python批量处理txt文件的实例代码
2020/01/13 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
高校学生干部的自我评价分享
2013/11/04 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
学生个人自我鉴定
2014/03/26 职场文书
《去年的树》教学反思
2014/04/11 职场文书
学校课外活动总结
2014/05/08 职场文书
2016年父亲节寄语
2015/12/04 职场文书
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript