H02 ステータスバーに文字をスクロールさせる

ステータスバーに文字をスクロールさせます。JavaScriptの出始めの頃に流行した、なつかしの?古典的スクリプトとも言えるものです。statusプロパティを利用して作っています。


応用:msg='文字列'の文字列部分を書き換えてお使いください。
参照: function, substring(), status, length, clearTimeout(), setTimeout(),

Sample

画面の一番下をみてね。



Source
ソース
(コピーしてお使いください) <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var cnt = -2; //文字位置 var speed = 120; //動かすスピード(1/1000秒単位) var msg = "こんにちは(^^)/~こんにちは(^^)/~"; //メッセージ内容 timeID=setTimeout('',1); //IE対策なにもしない^^;;タイマーセット // 文字を移動させる function scll(){ status = msg.substring(cnt=cnt+2,msg.length+2); //日本語は2文字づつ動かす if (cnt>msg.length){cnt=-2}; clearTimeout(timeID);//タイマーをクリア timeID = setTimeout('scll()',speed); } <!----> </SCRIPT> </HEAD> <BODY onLoad="scll()"> </BODY> </HTML>
status='文字列'でステータスバーに'文字列'を表示します。

msg.substring(a,b)はここでは変数msgの中の文字のa番目の位置からb番目の前までの文字を抜きだします。たとえば、'0123456789'.substring(4,9)で取り出されるのは、'45678'です。ここでは(a,b)を(cnt++,msg.length+1)とすることで、この命令がsetTimeoutによって繰り返されるたびに取り出す文字を順送りしています。尚、Netscapeは日本語1文字(2バイト)を2文字分としてカウントするので、+1づつ移動すると移動中に文字の頭の部分が少し文字化け(^^;します。そこで、(cnt=cnt+2,msg.length+2)という風に2バイトづつ動かします。

タイマーID=setTimeout("命令",ミリ秒) 指定したミリ秒(1/1000)後に命令を呼び出します。' ' か " " でくくるのを忘れてはいけません。ミリ秒は1000で1秒(ただし、遅い機械なら当然1秒以上かかります^^;)数値を表わす文字列やプロパティも使えます。タイマーIDは clearTimeout(タイマーID)の様に使いsetTimeoutで設定したタイマーを解除します。 <BODY onLoad="scll()">でページが読み込まれたらscll()を実行します。


Contents
| CONTENTS
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)


Maintained by
tato@fureai.or.jp works1997 Toshirou Takahashi