0
私はこのような単純なSVGファイルを持っている:Snap.svg:縮尺変更されたグループ滞在を維持する方法は?
<svg id="mySVG" /*other attributes"*/>
<group id="mixUps">
<ellipse /*ellipse atributtes blabla*/ />
<path /*this is a star-shaped path*/ />
<rect /*rect attributes*/ />
/*
Basically this is just a simple SVG group containing an ellipse, a path and a rectangle
*/
</g>
</svg>
をしてから、スクリプトファイルには、私はこのグループが、それはmouseoverイベントで元のサイズだし、それがマウスアウトで元のサイズだに戻す倍スケーリングすることにしたいです。
<script>
var mySvg = Snap("#mySvg");
var mixUps = mySvg.select("#mixUps");
function mixCursor(evt){
if(evt.type==="mouseover"){
mixUps.animate({transform:"s2"}, 250);
}else if(evt.type==="mouseout"){
mixUps.animate({transform:"s1"}, 250);
}
}
mixUps.mouseover(mixCursor);
mixUps.mouseout(mixCursor);
</script>
は、しかし、最初のmouseoverイベントで、何とか翻訳グループは、左上隅に(移動)、およびそこにとどまり、これはなぜですか?このグループを拡大縮小すると、その位置にとどまるようにする方法は?
ファイルhereを貼り付けました。
素敵@Ianおかげで、私は補正のほんの少しを追加したい:最新jsfiddleに、あなたはこのラインを持っています。var BB = mixUps.getBBox();イベントハンドラ関数で私たちがその行を持っていれば、グループは最初のmouseoverイベント(私はOperaとFirefoxのオンライン版でテストした)でちょっと変わった動作をします。その行を削除すれば、すべて正常に動作します。 – Rickard
私はそれらが必要ではなかったので、古いコードのちょっとしたものを更新しました。私はそれがなぜ影響を与えるのかはわかりません(それはChromeではありませんでした)。 – Ian