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 相关文章推荐
document.designMode的功能与使用方法介绍
Nov 22 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
Jan 12 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
jquery实现textarea 高度自适应
Mar 11 Javascript
javascript实现十秒钟后注册按钮可点击的方法
May 13 Javascript
基于JavaScript代码实现随机漂浮图片广告
Jan 05 Javascript
简单谈谈json跨域
Mar 13 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
Sep 09 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
Mar 08 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
Sep 14 Javascript
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
javascript json字符串到json对象转义问题
Jan 22 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
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
PHP insert语法详解
2008/06/07 PHP
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
python设置环境变量的作用和实例
2019/07/09 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
谈谈python垃圾回收机制
2020/09/27 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
一份报关员的职业规划范文
2014/01/08 职场文书
材料会计岗位职责
2014/03/06 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
就业推荐表院系意见
2015/06/05 职场文书
校长新学期寄语2016
2015/12/04 职场文书
装修安全责任协议书
2016/03/22 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android