文字や画像を動かす基本は、スタイルシートで、
position:absoluteまたは
position:relativeを指定して、JAVAスクリプトで座標を計算して動かすことです。
(参照)
スタイルシートを設定するには、
<span></span>か、<
div></div>に、
style="position:absolute(またはrelative)"と記述します。
そして、
id="(適当な名前)"をつけておきます。
それから、それを表示する座標をJAVAスクリプトで繰り返し計算しながら、変化させていくのです。
それをソースで表すと、JAVAスクリプトの方は、
<script language="JavaScript">
<!--
var k=0; //繰り返しの回数を数える。(座標の計算に使う)
var x,y; //x座標、y座標を入れる変数。
function ugoku() {
x座標を計算する;
y座標を計算する;
document.all. id.style.pixelLeft = x; //x座標へ移動
document.all. id.style.pixelTop = y; //y座標へ移動
k++; //kに1を足す(参照)
timerID=setTimeout("ugoku()",t);
//1000分のt秒後に、ugoku()を繰り返す。
//止めるには、clearTimeout(timerID);
}
//-->
</script>
|
というふうに、x、yを計算して、そこに移動する事を繰り返すと動いているように見えるのです。
繰り返しの回数を数えるのは(k)、何回か繰り返すと止めるとか、x、yの座標を計算するときに使うとかで利用するためです。
一方、スタイルシートを指定するタグの方は、
|
<span id="id" style="position:absolute;LEFT:0px;TOP:0px">
動かしたい文字や画像
</span>
|
または、
|
<span id="id" style="position:relative;LEFT:0px;TOP:0px">
動かしたい文字や画像
</span>
|
left、topには、最初に表示したい座標を入れておきます。
というぐあいに、これが基本の構造です。
後はx、yをどのように計算するかで、その動きが決まります。
下にいろいろな計算式で、どのようになるか例をあげておきます。
その計算には、
演算子と
数学関数が参考になりますので参照してください。
左から右へ
yは変えずにxを増やしていきます。
y座標は変えず、x座標のみ計算しています。
最初yは50、xは−20です。
x=x+5 で、繰り返しxを5ずつ増やしていっています。
繰り返すたびに、kを1ずつ増やして、
kを50で割った余りが49になるたびに、xを最初の数値に戻しています。
if (k%50==49){
x=-20; //xを最初にあった座標にする。
}
このように、左から右へ5ずつ50回進んだら、また左の最初にあったところから右へ移動します。
また、x を変えずに y を増やしていくと、上から下への動きになります。
右から左へ
yは変えずにxを減らしていきます。
最初yは50、xは250です。
今度もyは変えません。
xを5ずつ減らしています。
x=x-5
そして、上のものと同じやり方で、最初に戻って繰り返します。
また、x を変えずに、y を減らしていくと、下から上への動きになります。
波
サインカーブをえがきます。
xとyの計算は、
x=x+5;
ragi=k*Math.PI/180;
y=Math.sin(ragi)*50+50;
そしてこの例では、
k=k+10にして、kを10ずつ増やしています。
if (x>=400){
clearTimeout(timerID);
}
return false;
xが400を越えたら、止まります。
円
x と y の計算式は
ragi=k*Math.PI/180;
x=Math.cos(ragi)*70+100;
y=Math.sin(ragi)*70+100;
そして、k=k+10で、kを10ずつ増やしています。
ふらふら
x と y の計算式は、
x=x+3;
y=y+Math.floor(Math.random()*7-3);
跳ねる
x と y の計算式は、
x=x+5;
y=Math.pow(k%40-20,2)/3+40;
k=k+4;
でこぼこ
x と y の計算式は、
x=x+4;
y=(x%80 >= 39) ? 50:80;
式の内容については、
演算子と
数学関数が参考になりますので参照してください。