圆形插件html,circles是一款基于HTML5 SVG的轻量级JavaScript圆形进度条插件。

轻量级SVG圆环图库:Circles.js 动画与响应式实现
本文介绍了一个名为Circles.js的JavaScript库,用于在SVG中生成动态圆形图表。它支持自定义颜色、动画效果和响应式设计,通过简单的API轻松创建和更新图表。无需依赖,适用于多种浏览器,且提供了丰富的配置选项和示例代码。

Circles

625332134c6f4d4600884b99daebf603.png

Lightweight JavaScript library that generates circular graphs in SVG. Now with animation.

Usage

Include the circles.js or circles.min.js file in your HTML file. There are no dependencies.

Create a placeholder div in your HTML:

Create a graph by calling, the id should match id of the placeholder

:

var myCircle = Circles.create({

id: 'circles-1',

radius: 60,

value: 43,

maxValue: 100,

width: 10,

text: function(value){return value + '%';},

colors: ['#D3B6C6', '#4B253A'],

duration: 400,

wrpClass: 'circles-wrp',

textClass: 'circles-text',

valueStrokeClass: 'circles-valueStroke',

maxValueStrokeClass: 'circles-maxValueStroke',

styleWrapper: true,

styleText: true

});

where

id - the DOM element that will hold the graph

radius - the radius of the circles

value - init value of the circle (optional, defaults to 0)

maxValue - maximum value of the circle (optional, defaults to 100)

width - the width of the ring (optional, has value 10, if not specified)

colors - an array of colors, with the first item coloring the full circle (optional, it will be ['#EEE', '#F00'] if not specified) Can also be an rgba() value (example: ['rgba(255,255,255,0.25)', 'rgba(125,125,125,0.5)'])

duration - value in ms of animation's duration; defaults to 500; if 0 or null is passed, the animation will not run.

wrpClass - class name to apply on the generated element wrapping the whole circle.

textClass - class name to apply on the generated element wrapping the text content.

valueStrokeClass - class name to apply on the SVG path element which for the value amount.

maxValueStrokeClass - class name to apply on the SVG path element which for the maxValue amount.

styleWrapper - whether or not to add inline styles to the wrapper element (defaults to true)

styleText - whether or not to add inline styles to the text (defaults to true)

text - the text to display at the center of the graph (optional, the current "htmlified" value will be shown). If null or an empty string, no text will be displayed. It can also be a function: the returned value will be the displayed text like in the examples below:

// Example 1

function(currentValue) {

return '$'+currentValue;

}

// Example 2

function() {

return this.getPercent() + '%';

}

Install with grunt

Get the library

Install all the dependencies, run npm install

Once you have the dependencies installed, run grunt from the project directory. This will run the default grunt task which will minify circles.js to circles.min.js

API

myCircle.updateRadius(Number radius)

Regenerates the circle with the given radius (see spec/responsive.html for an example on how to create a responsive circle).

myCircle.updateWidth(Number width)

Regenerates the circle with the given width

myCircle.updateColors(Array colors)

Change colors used to draw the circle.

myCircle.update(Number value [, Number duration])

Set the value of the circle to value. Animation will take duration ms to execute. If no duration is given, default duration set in constructor will be used. If you don't want animation, set duration to 0.

myCircle.update(Boolean force)

Force the redrawing of the circle if force is set to true. Do nothing otherwise.

myCircle.getPercent()

Returns the percentage value of the circle, based on its current value and its max value.

myCircle.getValue()

Returns the value of the circle.

myCircle.getMaxValue()

Returns the max value of the circle.

myCircle.getValueFromPercent(Number percentage)

Returns the corresponding value of the circle based on its max value and given percentage.

myCircle.htmlifyNumber(Number number[, integerPartClass, decimalPartClass])

Returned HTML representation of given number with given classes names applied on tags. Default value of integerPartClass is circles-integer. Default value of decimalPartClass is circles-decimals.

Styles

The styles have been specified inline to avoid external dependencies. But they can be overriden via CSS easily, being simply HTML elements.

To help with this, a few CSS classes have been exposed:

circles-wrp - the element wrapping the whole circle

circles-text - the element wrapping text content

circles-integer - the element wrapping the text before the dot

circles-decimals - the element wrapping the decimal places

You can override these classes by sending properties wrpClass and/or textClass to the constructor.

Tests

Tests can be run with karma:

karma start

grunt jasmine

Examples

index.html - Overall functionality

responsive.html - Making circles responsive

viewport.html - Animate the circles when in viewport

Compatibility

Browsers that support SVG.

Desktop

Firefox 3+

Chrome 4+

Safari 3.2+

Opera 9+

IE9 +

Mobile

iOS Safari 3.2+

Android Browser 3+

Opera Mobile 10+

Chrome for Android 18+

Firefox for Android 15+

Contributors

Inspirations

Code and ideas borrowed by:

Licence

Circles is licensed under the terms of the MIT License.

Changelog

0.0.6 Make inline styles optional.

0.0.5 Rethink a bit the way the library is working + add some public methods.

0.0.4 Exposes generate(radius) to regenerate the circle, opening it to responsiveness.

0.0.3 Allow adding extra text to the graph (issue 3). Round integers during animation.

0.0.2 Add animation.

0.0.1 First release.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值