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 相关文章推荐
Mootools 1.2教程(21)——类(二)
Sep 15 Javascript
JavaScript QueryString解析类代码
Jan 17 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
JavaScript运动框架 多值运动(四)
May 18 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
微信小程序 获取session_key和openid的实例
Aug 17 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
vue 实现setInterval 创建和销毁实例
Jul 21 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
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
Python中特殊函数集锦
2015/07/27 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Python之循环结构
2019/01/15 Python
python判断自身是否正在运行的方法
2019/08/08 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
师范应届生语文教师求职信
2013/10/29 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
Python道路车道线检测的实现
2021/06/27 Python