直線/曲線をリアルタイムに移動させる |
Internet Explorer | Netscape Navigator | iCab | Safari | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3.0x | 4.0x | 4.5 | 5.0x | 5.5 | 6.0 | 2.0x | 3.0x | 4.0x | 4.x | 6.0 | 7.0 | 2.x | 1.x | |
Windows | × | ○ | - | ○ | ○ | ○ | × | ○ | ○ | ○ | × | × | - | |
Macintosh | × | × | × | × | - | - | × | ○ | ○ | ○ | × | × | × | × |
UNIX | - | - | - | - | - | - | × | × | × | × | × | × | - |
ポイント | svgObj.setAttribute("d","M0,30L0,50C40,"+y+",140,40,200,50L200,100z"); |
---|---|
説 明 | SVG内で内容を変更する文字のエレメントにidで名前を付けます。付けた名前はgetElementById("名前")で指定します。このエレメント内の座標のデータをsetAttribute()で書き換えます。リアルタイムに表示するにはsetTimeout()を使って定期的(1秒)に座標を書き換えます。 |
サンプル | <html> <head> <title>直線/曲線をリアルタイムに移動させる</title> <script language="JavaScript"><!-- svgObj = null y = 0; function setSVG() { svgObj = document.theSVG.getSVGDocument().getElementById("svgLine"); setTimeout("setTime()",1000); } function setTime() { y = (new Date()).getSeconds() * 4; svgObj.setAttribute("d","M0,30L0,50C40,"+y+",140,40,200,50L200,100z"); setTimeout("setTime()",1000); } // --></script> </head> <body onload="setSVG()"> <embed height="480" name="theSVG" src="test.svg" width="640"><br> </body> </html> |
補足説明 | ここで使用したSVGは以下の通りです。
<?xml version="1.0"?> <svg> <path id="svgLine" style="stroke:blue;fill:yellow;stroke-width:5pt" d="M0,30L0,50C40,60,140,40,200,50L200,100z" /> </svg> |
■サンプルスクリプトを実行する >>実行 ■各ブラウザでの動作結果を見る >>View! |