0
我有一個錶盤/撥號類型的級別在我的應用程序中動畫。當數值改變時,針和刻度盤會自動更新。我必須對代碼進行細微更改才能正常工作,但是當它發生較大更改時,動畫不會沿着半圓的路徑前進。Raphael JS - 沿其路徑動畫一個半圓
我的代碼是這樣的:(間隔只是用於測試目的)
var rad = Math.PI/180;
var getCurvePath = function(cx, cy, r, startAngle, endAngle) {
var x1 = cx + r * Math.cos(-startAngle * rad),
x2 = cx + r * Math.cos(-endAngle * rad),
y1 = cy + r * Math.sin(-startAngle * rad),
y2 = cy + r * Math.sin(-endAngle * rad);
return ["M", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2];
};
var zeroAngle = 197, fullAngle = -15,baseAngle = 199,
r = Raphael('level');
var level = r
.path(getCurvePath(150, 150, 75, zeroAngle, baseAngle))
.attr({
'stroke': '#FF0000',
'stroke-width': '11px'
});
window.setInterval(function() {
var ratio = Math.random();
var newLevelAngle = (zeroAngle - fullAngle) * ratio;
level.animate({
'path': getCurvePath(150, 150, 75, newLevelAngle, baseAngle)
}, 1000, 'bounce');
}, 2000);
我已經設置了一個JS小提琴,你在這兒可以看到這個動作:http://jsfiddle.net/Rfd3v/1/