他の答えは正しいです-あなたはsetViewBoxを使いたいです。
アニメーションをサポートするバージョンは次のとおりです。それは完全に美しいわけではなく、コードを抽出するためにページのソースを確認する必要がありますが、多かれ少なかれ希望どおりに動作するはずです。
Raphael 拡張としてのビュー ボックス アニメーションは次のとおりです。
Raphael.fn.animateViewBox = function animateViewBox( x, y, w, h, duration, easing_function, callback )
{
var cx = this._viewBox ? this._viewBox[0] : 0,
dx = x - cx,
cy = this._viewBox ? this._viewBox[1] : 0,
dy = y - cy,
cw = this._viewBox ? this._viewBox[2] : this.width,
dw = w - cw,
ch = this._viewBox ? this._viewBox[3] : this.height,
dh = h - ch,
self = this;;
easing_function = easing_function || "linear";
var interval = 25;
var steps = duration / interval;
var current_step = 0;
var easing_formula = Raphael.easing_formulas[easing_function];
var intervalID = setInterval( function()
{
var ratio = current_step / steps;
self.setViewBox( cx + dx * easing_formula( ratio ),
cy + dy * easing_formula( ratio ),
cw + dw * easing_formula( ratio ),
ch + dh * easing_formula( ratio ), false );
if ( current_step++ >= steps )
{
clearInterval( intervalID );
callback && callback();
}
}, interval );
}
(あまり美しくない) デモンストレーションはこちら: http://voidblossom.com/tests/easedViewBox.php
変換を使用することに本当に熱心な場合 (うまく活用すればいくつかの利点がありますが、一般的にはビューボックスの操作に比べて脆弱です)、 http ://voidblossom.com/tests/zoomByTransform に変換を使用した別の例があります。.php .