2

この SVG プラグインを使用しています。

これは私のコードです:

$(function() {
    $('#svgbasics').svg({onLoad: drawInitial});
});

function drawInitial(svg) {

    var mycircle = svg.circle(75, 75, '50', {fill: '#f2477b', stroke: 'none', 'stroke-width': 0, class_:'drag'});

    $('.drag').click(function() {
       $(this).animate({svgR: '0'},300, function() { $('.drag').css("display", "none"); });
    }

    $("#restore").click(function() {
       $('.drag').css("display", "block");
       $(this).animate({svgR: '50'},300, function() { });
    }
}

通常、(半径) R=50 の円があり、円をクリックすると R=0 にアニメーション化され、css("display", "none") が消えます。次に、#restore 要素をクリックすると、半径 = 50 で再び表示されます。達成したいのはmycircle、次のような変数からこの「50」値を取得することです。svgR: $(this.R)

mycircleこの値を変数から取得するにはどうすればよいですか?

4

1 に答える 1

5

これは Firefox でしかテストできませんでしたが、そのブラウザーでmycircle.rSVGAnimatedLengthインスタンスが返され、 そのプロパティはSVGLengthインスタンスを返し、プロパティを公開します。animValvalue

var radius = mycircle.r.animVal.value;

この fiddleでテストできます。

animVal円がアニメーション化されている場合、ではなくを使用baseValすると、円の半径の現在の値を取得できることに注意してください。

于 2012-10-13T10:30:05.597 に答える