使用HTML5画布实现的超棒javascript动画仪表板:gauge.js

日期:2012-8-8  来源:GBin1.com

使用HTML5画布实现的超棒javascript动画仪表板:gauge.js

在线演示

今天我们分享来自guage.js的超棒动画仪表板实现,这个类库使用html5画布来生成动态的自定义仪表板。不依赖于任何类库也不实用任何的CSS或者图片,完全使用画布生成。

拥有两套不同的UI,一个是仪表盘,一个类似原来我们介绍的jQuery knob界面。支持UI元素自定义你可以生成自己需要的颜色格式。

使用HTML5画布实现的超棒javascript动画仪表板:gauge.js

主要特性:

  • 无图片,CSS
  • 无类库依赖(支持jQuery,但是不是必须的)
  • 高度可配置
  • 分辨率独立
  • 动画数值变化
  • 支持主流浏览器

支持浏览器:

  • Chrome
  • Safari 3.2+
  • Firefox 3.5+
  • IE 9
  • Opera 10.6+
  • Mobile Safari (iOS 3.2+)
  • Android 2.3+

如何使用

var opts = {
  lines: 12, // The number of lines to draw
  angle: 0.21, // The length of each line
  lineWidth: 0.44, // The line thickness
  pointer: {
    length: 0.9, // The radius of the inner circle
    strokeWidth: 0.108 // The rotation offset
  },
  colorStart: '#909090',   // Colors
  colorStop: '#8FC0DA',    // just experiment with them
  strokeColor: '#E0E0E0'   // to see which ones work best for you
};
var target = document.getElementById('foo'); // your canvas element
var gauge = new Gauge(target).setOptions(opts); // create sexy gauge!
gauge.maxValue = 3000; // set max gauge value
gauge.animationSpeed = 46; // set animation speed (32 is default value)
gauge.set(650); // set actual value

如果你使用jQuery,你可以使用如下插件代码:

$.fn.gauge = function(opts) {
  this.each(function() {
    var $this = $(this),
        data = $this.data();

    if (data.gauge) {
      data.gauge.stop();
      delete data.gauge;
    }
    if (opts !== false) {
      data.gauge = new Gauge(this).setOptions(opts);
    }
  });
  return this;
};

如果你希望方便快速的创建一个动态仪表,gauge.js肯定是一个不错的选择,如果你有任何想法,请给我们留言,谢谢阅读!

来源:使用HTML5画布实现的超棒javascript动画仪表板:gauge.js


可以使用以下正则表达式来匹配以$d开头,disk结尾的字符串: ```python import re string = "# snmpwalk -v 2c -c zte_public 190.254.0.3:1611.3.6.1.4.1.3902.6053.19.1.3.2.7\ ...\n$da 8:15 0 477G 0 disk\n\ ... ~ # snmpwalk -v 2c -c zte_public 190.254.0.3:161 1.3.6.1.4.1.3902.6053.19.1.3.2.7\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.7.1.0 = Gauge32: 0\ ...\n$db 8:15 0 477G 0 disk\n\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.14.0.0 = Gauge32: 0\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.14.1.0 = Gauge32: 0\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.15.1.0 = Gauge32: 0\ ...\n$dc 8:15 0 477G 0 disk\n\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.20.1.0 = Gauge32: 0\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.26.0.0 = Gauge32: 0\ ...\n$dd 8:15 0 477G 0 disk\n\ ...\nSNMPv2-SMI::enterprises.3902.6053.19.1.3.2.7.1.1.26.1.0 = Gauge32: 0" pattern = r'\$d.*?disk\\n\\s*\\\.\\.\\..*?' result = re.findall(pattern, string, re.DOTALL) print(result) # 输出结果:['$da\t\t\t\t\t8:15\t0\t477G\t0\tdisk\n\\ ...', '$db\t\t\t\t\t8:15\t0\t477G\t0\tdisk\n\\ ...', '$dc\t\t\t\t\t8:15\t0\t477G\t0\tdisk\n\\ ...', '$dd\t\t\t\t\t8:15\t0\t477G\t0\tdisk\n\\ ...'] ``` 解析一下正则表达式: - `\` :转义字符,表示后面的字符是特殊字符,需要转义处理; - `\$d` :匹配以$d开头的字符串; - `.*?` :非贪婪匹配任意字符,直到下一个字符能够匹配成功; - `disk\\n\\s*` :匹配disk和换行符,并且后面可能有多个空白字符; - `\\\.\\\.\\.` :匹配三个连续的点(因为点是特殊字符,需要转义); - `.*?` :非贪婪匹配任意字符,直到下一个字符能够匹配成功; - `.*?` 和 `\\\.\\\.\\.` 重复出现多次,因为要匹配多个符合条件的字符串; - `re.DOTALL` :表示`.`可以匹配任意字符,包括换行符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值