html5 – 使用Canvas为填充圆圈设置动画

基本上我希望能够使用画布填充圆圈,但它会以一定的百分比动画.
我只有圆圈填满了80%.

我的画布知识并不令人惊讶,这是我在photoshop中制作的图像,用于显示我想要的内容.

我希望圆圈开始为空,然后填充说圆圈的70%.
Canvas有可能,如果是这样吗?任何人都可以了解如何做到这一点?

这是我管理的一个小提琴

http://jsfiddle.net/6Vm67/

var canvas = document.getElementById('Circle');
 var context = canvas.getContext('2d');
 var centerX = canvas.width / 2;
 var centerY = canvas.height / 2;
 var radius = 80;

 context.beginPath();
 context.arc(centerX,centerY,radius,2 * Math.PI,false);
 context.fillStyle = '#13a8a4';
 context.fill();
 context.lineWidth = 10;
 context.strokeStyle = '#ffffff';
 context.stroke();

任何帮助都将受到大力赞赏

解决方法

剪裁区域使这非常容易.你所要做的就是制作一个圆形剪裁区域,然后填充一个大小的矩形,以获得一个值得填充的“部分圆”.这是一个例子:
var canvas = document.getElementById('Circle');
var context = canvas.getContext('2d');
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 80;

var full = radius*2;
var amount = 0;
var amountToIncrease = 10;

function draw() {
    context.save();
    context.beginPath();
    context.arc(centerX,false);
    context.clip(); // Make a clipping region out of this path
    // instead of filling the arc,we fill a variable-sized rectangle
    // that is clipped to the arc
    context.fillStyle = '#13a8a4';
    // We want the rectangle to get progressively taller starting from the bottom
    // There are two ways to do this:
    // 1. Change the Y value and height every time
    // 2. Using a negative height
    // I'm lazy,so we're going with 2
    context.fillRect(centerX - radius,centerY + radius,radius * 2,-amount);
    context.restore(); // reset clipping region

    context.beginPath();
    context.arc(centerX,false);
    context.lineWidth = 10;
    context.strokeStyle = '#000000';
    context.stroke();

    // Every time,raise amount by some value:
    amount += amountToIncrease;
    if (amount > full) amount = 0; // restart
}

draw();
// Every second we'll fill more;
setInterval(draw,1000);

http://jsfiddle.net/simonsarris/pby9r/

相关文章

HTML5不是新事物。自从最初发布(2008年1月)以来,我们一直在使用它的一些功能。后来,我再次仔细查看...
Pointer Events API 是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(...
CSS动画非常的有趣;这种技术的美就在于,通过使用很多简单的属性,你能创建出漂亮的消隐效果。其中代表...
clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法。想象...
语法 必需。动画时长的百分比。 合法的值: 0-100% from(与 0% 相同) to(与 100% 相同) 定义和用法...
基本代码 html代码: 首先定义一些基本的样式和动画: background-size: auto 100%; 这段代码的意思是让...