HP作成講座、脱初心者編
文字や画像を動かす。その4、様々な動き
文字や画像を動かす基本は、スタイルシートで、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;



式の内容については、 演算子数学関数が参考になりますので参照してください。
PC−Parkトップ
心の話サイコロTown!




広告 万馬券 無料レンタルサーバー ブログ blog