以前、pesoさん、xruzさんに教えられたこと等をもとに
以下のようなscriptを作成しました。
///////
<head>
<script language="javascript">
<!--
str1="わしはしばらく出てこないよーーー ";
str2="しばらく出てこないよーーー ";
str3="出てこないってばーーー ";
blnk = " ";
str = str1+blnk;
cnt=0;
mcnt = 0;
msg = "";
stcnt=0;
i=0;
timeID = 10;
function type(){
if(i<=str.length){
if(document.all){
stcnt++;
if (stcnt>3){
stcnt = 0;
msg += str.substring(mcnt,mcnt+1);
mcnt++;
if (mcnt >= str.length) { mcnt=0; msg=""; }
}
csr = " ";
if (stcnt & 1) csr ="_";
myText.innerHTML=msg+csr;
}
else if(document.layers)
{
document.myText.document.open();
document.myText.document.write(msg.substring(0,i));
document.myText.document.close();
}
i=++i;
clearTimeout(timeID);
timeID=setTimeout("type()",50);
}
else{
i=0;
clearTimeout(timeID);
timeID=setTimeout("type()",50);
}
}
//-->
</script>
</head>
<body bgcolor="#cccccc" onload="type()">
<div id="myText" style="position:absolute;top:20;left:20;"></div>
</body>
pesoさん、xruzさん、ありがとうございました。これでほぼ、僕の作りたい
スクリプトができました。(不要なところもありますが......)
ですが、このままだとstr1のみしか表示されず、str2、str3は表示され
ません。(当然ですが)
str1を表示した後にstrにstr2、str3を入れるにはどうしたらいいので
しょうか?(以前、xruzさんに教えていただいたスクリプトを永遠に
続けるような感じです。)
No.3
- 回答日時:
すいません、前回の所に配列は苦手、っていうようなことが書いてありましたね。
まぁ、せっかくなんでこれを機会に配列を覚えましょう。
var str = new Array(); ←配列の宣言は 変数 = new Array() のようにします。
str[0] = "わしはしばらく出てこないよーーー ";
str[1] = "しばらく出てこないよーーー ";
str[2] = "出てこないってばーーー ";
配列の要素は 配列の名前[数字] になります。(javascriptでは 0 から始まります。)
例えば、警告ダイアログに しばらく出てこないよーーー を
表示したい場合は
alert str[1];
のようになります。
で、この[ ]の中の数字のことを添字といいます。普通はこの添字に変数を使うことが多いです。
変数を使って配列の中身(今回は ”しばらく出てこないよーーー ”)を警告ダイアログに表示します。
i = 1;
alert str[i];
次の例は配列の中身を順番に警告ダイアログに表示します。
for (i = 0; i < 3; i++) alert str[i];
このように、配列は連続した処理には欠かせません。
No.2
- 回答日時:
自分なりに簡単にできるところはなるべく簡単にするようにしてみました。
(変わりすぎ??)
このような場合は配列を使うと比較的簡単に出来ます。
↓では配列の要素を追加するだけで(str[4] = ・・・,str[5] = ・・・のように)表示する文字列の数を増やしたり減らしたり出来ます。
<head>
<script language="javascript">
<!--
//打ち出される文字は配列strに格納
var str = new Array();
str[0] = "わしはしばらく出てこないよーーー ";
str[1] = "しばらく出てこないよーーー ";
str[2] = "出てこないってばーーー ";
var timespd = 50;//タイマーの速さ
var maxrow = str.length; //strの要素の数を格納
var rowcnt = 0; //現在表示中のstrの添字
var msg = ""; //実際に表示される文字を一時的に格納
var i = 1; //今msgに格納されている文字数
var timeID; //タイマー制御用
function type(){
if (i <= str[rowcnt].length){
msg = str[rowcnt].substr(0, i);
if (i & 1) msg += "_";// i (今表示する文字数)が奇数だったら_を付け加える
i++;
}
else{
i = 1;
rowcnt = (rowcnt + 1) % maxrow;//次に表示するstrの添字の決定
msg = "";
}
if (document.all){
myText.innerHTML = msg;
}
else if (document.layers){
document.myText.document.open();
document.myText.document.clear();
document.myText.document.write(msg);
document.myText.document.close();
}
clearTimeout(timeID);
timeID = setTimeout("type()",timespd);
}
//-->
</script>
</head>
<body bgcolor="#cccccc" onload="type()">
<div id="myText" style="position:absolute;top:20;left:20;"></div>
</body>
ありがとうございます。
配列は以前、嫌な思いをしたもので....
それから配列と聞くと体が避けていくんですよね。
ですが、pesoさんのスクリプトの方が、表示時間を同じに
してるのに、表示が速いですね。
やっぱりちゃんと配列を覚えたほうがよさそうですね。
でも体が......
No.1ベストアンサー
- 回答日時:
はーいnovaakiraさん、xruzです。
これでいいでしょうか?
<head>
<script language="javascript">
<!--
str1="わしはしばらく出てこないよーーー ";
str2="しばらく出てこないよーーー ";
str3="出てこないってばーーー ";
blnk = " ";
str = str1+blnk;
cnt=0;
mcnt = 0;
msg = "";
stcnt=0;
i=0;
j=0;
timeID = 10;
function type(){
if(i<=str.length){
if(document.all){
stcnt++;
if (stcnt>3){
stcnt = 0;
msg += str.substring(mcnt,mcnt+1);
mcnt++;
if (mcnt >= str.length) { mcnt=0; msg="";
switch (j) {
case 0: {j++; str=str2+blnk; break;}
case 1: {j++; str=str3+blnk; break;}
case 2: {j=0; str=str1+blnk; break;}
}
}
}
csr = " ";
if (stcnt & 1) csr ="_";
myText.innerHTML=msg+csr;
}
else if(document.layers)
{
document.myText.document.open();
document.myText.document.write(msg.substring(0,i));
document.myText.document.close();
}
i=++i;
clearTimeout(timeID);
timeID=setTimeout("type()",50);
}
else{
i=0;
clearTimeout(timeID);
timeID=setTimeout("type()",50);
}
}
//-->
</script>
</head>
<body bgcolor="#cccccc" onload="type()">
<div id="myText" style="position:absolute;top:20;left:20;"></div>
</body></html>
がんばってくださいね(~:~i
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Null またはオブジェクトではあ...
-
javascriptの基本的なことだと...
-
デフォルトのリンクの色
-
onload時にPostBackを発生させ...
-
onClickイベントの変更方法
-
FireFoxのjavascriptで自動でキ...
-
同じIDで定義した要素の配列を...
-
関数でy=g(x)のgとは何の略です...
-
<a>タグのテキストを取得
-
【正規表現】【javascript】CR...
-
javascriptで文字挿入でtoggle...
-
句点“。”で区切り、“。”も含め...
-
Boolean型配列中のTrueの有無を...
-
gas スプレッドシートがアクテ...
-
スロットマシン風の表示
-
ローカルにあるファイルを検索...
-
Vb.netのグローバル変数の宣言...
-
毎週土曜日のみの日付を取得、...
-
ActiveXobjectが作成できない
-
javascript(jQuery)でセル内...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptの基本的なことだと...
-
Latexに関する質問です。
-
DOM要素を削除しても、イベント...
-
文字を一文字ずつ表示
-
Null またはオブジェクトではあ...
-
excle VBA とweb上の検索を利用...
-
JavaScript window.openで開く...
-
FireFoxのjavascriptで自動でキ...
-
UWSCでオンクリックのボタンを...
-
ラジオボタンでreadonlyの切替え
-
XMLでのAttributeを持ったNode...
-
乗換案内 VBAで操作したい
-
Javascriptで定期的にF5を押す...
-
responseTextについて
-
webページ上のTabキーの動き
-
クリッカブルマップのリンク部...
-
ie操作 フレームのURLが...
-
TexでΣの添え字の位置直し
-
連動するセレクトボックスの内...
-
LaTeX:数式を等号揃えにする方法
おすすめ情報