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 相关文章推荐
JavaScript 基于原型的对象(创建、调用)
Oct 16 Javascript
javascript开发技术大全-第3章 js数据类型
Jul 03 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
jQuery实现右下角可缩放大小的层完整实例
Jun 20 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 Javascript
JavaScript实现旋转轮播图
Aug 18 Javascript
js原生方法被覆盖,从新赋值原生的方法
Jan 02 Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python列表推导式实现代码实例
2020/09/09 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
监察建议书
2015/02/04 职场文书
唐山大地震观后感
2015/06/05 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python