キャラクタを左から右へ動かす(画面右端で停止)


動作ブラウザ 【 IE:4.0  NN:4.0
Internet Explorer Netscape Navigator Opera iCab Safari
3.0 4.0 4.5 5.0 5.5 6.0 2.0 3.0 4.0x 4.x 6.0 7.0 6 7 2.x Beta
Windows × - × × × × × × × × - -
Macintosh × - - × × × × × × × - ×
UNIX - - - - - - × × × × × × - - - -

ポイント sx = document.body.clientWidth - document.images["myChar"].width;
if (cx < sx) cx = cx + 10;
document.images["myChar"].style.left = cx;
setTimeout("moveChar()",mSec);
説  明 キャラクタを左から右側に移動させるにはキャラクタ(ここでは画像)のX座標を加算します。X座標は直接スタイルシートプロパティを操作するのではなく、変数で用意します。加算前または加算後に画面右端を超える場合にはX座標に加算しないようにします。画面右端はdocument.body.clientWidthに入っており、この値と比較を行います。ただし、画面右端にキャラクタが消えてしまわないようにするためにキャラクタの横幅も考慮(減算)する必要があります。その後でスタイルプロパティであるleftに入れます。
キャラクタを移動させる場合には、あらかじめスタイルシートで座標系(絶対座標)を指定しておかないと全く動かないブラウザがあります。
サンプル <html>
<head>
<title>キャラクタを左から右へ動かす(画面右端で停止)</title>
<script Language="JavaScript"><!--
cx = 0; // キャラクタの最初のX座標
mSec = 200; // キャラクタの移動速度(1秒=1000)
function moveChar()
{
sx = document.body.clientWidth - document.images["myChar"].width;
if (cx < sx) cx = cx + 10;
document.images["myChar"].style.left = cx;
setTimeout("moveChar()",mSec);
}
// --></script>
</head>
<body onLoad="moveChar()">
<img src="char.gif" name="myChar" style="position:absolute;top:0px;left:0px;">
</body>
</html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA