使用jQuery / HTML5为圆圈设置动画

时间:2011-04-22 13:11:48

标签: javascript jquery html5 animation css3

对于个人项目,我正在制作计时器应用程序(用于控制扑克盲人时间表)。我知道市场上已有几种解决方案,但由于原因太长而无法进入,我们需要一个定制系统。尽管最终用户最终可以定义系统的输出模板,但我们希望包含一个小部件,该小部件显示一个随着时间倒计时动画的圆圈。以下是一个工作示例的说明,显示了黄色圆圈以及我们想要实现的目标(或者类似的东西):

How to animate the circle?

我的问题是,如何使用jQuery或原始HTML5 / CSS3动画编码动画如下所示?这适用于使用jQuery的Web应用程序,因此我没有其他库选项可供使用。

高级谢谢!

6 个答案:

答案 0 :(得分:4)

如果你可以使用HTML5,画布可能是你最好的选择。 Mozilla在绘制弧上有一些不错的tutorials。这应该足以让你入门。

var canvas = document.getElementById('canvasid'),
    width = canvas.width,
    height = canvas.height,
    ctx = canvas.getContext('2d');

function drawTimer(deg) {
  var x = width / 2, // center x
      y = height / 2, // center y
      radius = 100,
      startAngle = 0,
      endAngle = deg * (Math.PI/180),
      counterClockwise = true;

  ctx.clearRect(0, 0, height, width);
  ctx.save();

  ctx.fillStyle = '#fe6';

  // Set circle orientation
  ctx.translate(x, y);
  ctx.rotate(-90 * Math.PI/180);

  ctx.beginPath();
  ctx.arc(0, 0, radius, startAngle, endAngle, counterClockwise);
  ctx.lineTo(0, 0);
  ctx.fill();
}

setInterval(function() {

  // Determine the amount of time elapsed; converted to degrees
  var deg = (elapsedTime / totalTime) * 360;

  drawTimer(deg);

}, 1000);

答案 1 :(得分:4)

您可以使用CSS3和jQuery实现此目的。

在这里查看我的示例http://blakek.us/css3-pie-graph-timer-with-jquery/,稍加修改即可让计时器看起来如你所愿。

答案 2 :(得分:1)

在HTML5中,您可以在画布中绘图。 例如:

// Create the yellow face
context.strokeStyle = "#000000";
context.fillStyle = "#FFFF00";
context.beginPath();
context.arc(100,100,50,0,Math.PI*2,true);
context.closePath();
context.stroke();
context.fill();

Link

答案 3 :(得分:1)

你应该看看Processing

特别是Processing.js。用iPhone制作了一些interesting things

答案 4 :(得分:0)

我能想到的第一个解决方案是html5 canvas实施。从上面的例子可以清楚地看到我们正在谈论移动,所以画布在移动浏览器中得到了什么支持我无法分辨。 developer.mozilla.org提供sufficient documentation。使用canvas来实现这样的倒计时应该是非常简单的任务。祝你好运。

答案 5 :(得分:0)

HTML5 Canvas arc命令(MDN)可能就是你要找的东西。只需减少结束角度即可使计时器减少。

相关问题