以前、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.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
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さんのスクリプトの方が、表示時間を同じに
してるのに、表示が速いですね。
やっぱりちゃんと配列を覚えたほうがよさそうですね。
でも体が......
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SafariのIframeで高さが取得で...
-
クリッカブルマップのリンク部...
-
javascriptの基本的なことだと...
-
Null またはオブジェクトではあ...
-
DOM要素を削除しても、イベント...
-
Javascriptで定期的にF5を押す...
-
IE操作で別タブ表示のHTMLソー...
-
乗換案内 VBAで操作したい
-
TEXTAREA内の改行位置をinnerHT...
-
チャットフォームで文字色をラ...
-
このjavascriptのif文、条件式...
-
背景ランダム
-
選択によってsubmitボタンの色...
-
LaTeX:数式を等号揃えにする方法
-
functionから別のfunctionを実...
-
javascriptで自動計算フォーム...
-
日本語入力の禁止
-
URLの一部をコピーできるブック...
-
関数でy=g(x)のgとは何の略です...
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScript window.openで開く...
-
このjavascriptのif文、条件式...
-
FireFoxのjavascriptで自動でキ...
-
DOM要素を削除しても、イベント...
-
javascriptの基本的なことだと...
-
文字を一文字ずつ表示
-
showModalDialogで開いた画面を...
-
Null またはオブジェクトではあ...
-
Javascriptのhtml出力についてa...
-
codejump 模写コーディングgall...
-
LaTeX:数式を等号揃えにする方法
-
javascriptのdocument.allにつ...
-
excle VBA とweb上の検索を利用...
-
Latexに関する質問です。
-
乗換案内 VBAで操作したい
-
JavaScriptのdocument.all("変...
-
Javascriptで定期的にF5を押す...
-
選択によってsubmitボタンの色...
-
スマホでフォームにフォーカス...
-
compatModeとは?
おすすめ情報