ステータスバー(ブラウザの下の方)にメッセージをスクロールさせる技は周知のものです。 また同様に、1文字ずつ表示する方法も周知です。
この2つの技を合体させて、交互に実行します。 また、それぞれのスピードやインターバルなども自由に設定可能です。
HEAD部分にスクリプトを記述します。 必要に応じて変数の内容を書き換えます。(下記参照)
この他、1文字ずつ表示、スクロールの入れ替え(初期は1文字ずつ、スクロールの順)や、 無限ループをしない設定なども可能です。
IE3,NN3以上
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>ステータススクロール</title> <script language="JavaScript"> <!-- var Message = "初めてのホームページ講座"; var sEnd = 130; //スクロール完了するまでのスペース文字数 var ActTc = 100; //1文字ずつ表示スピード var ActTs = 50; //スクロールスピード var ActT = 100; //その他のスピード var iEnd = 10; //インターバル時間 var iCur = 0; var iScr = 0; var iInt = 0; var iType = 0; var TimerID; function Init(){ iType = 3; Controll(); } function Controll(){ var i = 0; var sFlag = false; if(iType == 0){ //1文字ずつ表示 sFlag = Curtain(); if(!sFlag){ iType = 1; } TimerID = setTimeout("Controll()",ActTc); }else if(iType == 1){ //インターバル iInt++; if(iInt >= iEnd){ iType = 2; } TimerID = setTimeout("Controll()",ActT); }else if(iType == 2){ //横スクロール sFlag = Scroll(); if(!sFlag){ iType = 3; //無限の場合は1or3、完了する場合は99にする } TimerID = setTimeout("Controll()",ActTs); }else if(iType == 3){ //初期化 iCur = 0; iScr = 0; iInt = 0; iType = 0; //初期に実行するタイプ 0=1文字ずつ表示、2=横スクロール TimerID = setTimeout("Controll()",ActT); }else if(iType == 99){ //完了 clearTimeout(TimerID); } } function Curtain(){ var i; var Comm = ""; Comm = Message.substring(0,iCur); SetMess(Comm); iCur++; if(iCur > Message.length){ return(false); }else{ return(true); } } function Scroll(){ var i; var Comm = ""; for(i = 1; i <= iScr; i++){ Comm += " "; } Comm += Message; SetMess(Comm); iScr++; if(iScr >= sEnd){ return(false); }else{ return(true); } } function SetMess(Mess){ window.status = Mess; } // --> </script> </head> <body onload="Init()"> ステータスバーにスクロール文字を表示します。 </body> </html>