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    = "こんにちは(^^)/~こんにちは(^^)/~"; //メッセージ内容
var 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