質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

3652閲覧

文字を1文字ずつ表示させるには?

naia

総合スコア20

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/04/01 06:52

編集2015/04/01 07:02

タイトルの通りです
検索をかけてみたのですが解決に至らなかったので質問させて頂きます

以下は自分で考えたコードです
ご指摘お願いします

追記
テキストボックスは使わずにdocument.writeで出力できるようにしたいです

lang

1<form name="timer"> 2<input type="button" value="スタート" onclick="startfnc()"><br> 3</form> 4 5<script> 6 7function hyoji() 8{ 9//表示する文字 10var str = "一文字ずつ表示します。"; 11 12//文字数 13var cnt = 11; 14 15//文字が全部表示されているか確認 16if ( cnt < 11 ) 17{ 18//現在より1文字多く切り出して表示 19document.write( str.substr(0,cnt+1) ); 20} 21else 22{ 23//全て表示されたら、空文字に戻す 24document.timer.str.value = ""; 25} 26} 27 28 29function startfnc() 30{ 31//関数hyoji()を1000ミリ秒間隔で呼び出す 32setInterval("hyoji()",1000); 33} 34 35</script> 36

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

追記
テキストボックスは使わずにdocument.writeで出力できるようにしたいです

それは無理かなって。
HTML5でも非推奨なので、無理に使わない方がいいかなって。

で、以下、貴方のコードをできるだけ活かしたサンプル。

lang

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>サンプル</title> 6<script> 7 8var str = "一文字ずつ表示します。"; 9var cntmax = str.length; 10var cnt = 0; 11 12function hyoji() 13{ 14 if ( cnt < cntmax ) 15 { 16 //現在より1文字多く切り出して表示 17 cnt = cnt + 1; 18 document.body.innerHTML = ( str.substr(0, cnt) ); 19 } 20 else 21 { 22 //全て表示されたら、空文字に戻す 23 document.body.innerHTML = ""; 24 cnt = 0; 25 } 26} 27 28function startfnc() 29{ 30 //関数hyoji()を1000ミリ秒間隔で呼び出す 31 setInterval("hyoji()", 1000); 32} 33 34</script> 35 </head> 36 <body> 37 <input type="button" value="スタート" onclick="startfnc()"><br> 38 </body> 39</html>

投稿2015/04/01 12:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご指摘お願いします

というのは、何を期待しているのかしら。
あなたのコードを土台として、実際に動作するサンプルが欲しいということ?
考え方のヒントがほしいということ?

投稿2015/04/01 07:02

chokojori

総合スコア971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naia

2015/04/01 07:05

できれば動くサンプルが欲しいのですが 理解を深めるために考え方のヒントも欲しいです
chokojori

2015/04/01 07:14

端的に言えば、setIntervalを使う場合、一定間隔で同一関数を繰返し呼ぶことになります。 であれば、今回表示すべき文字は何文字目の文字なのかを示す変数が必要になります。
chokojori

2015/04/01 23:23

たとえば、こんな感じでしょうか。 <body> <p id="result"></p> <form name="timer"> <input type="button" value="スタート" onclick="startfnc()"><br> </form> <script type="text/javascript"> var hyoji_pos = 0; function hyoji(str) { document.getElementById("result").innerHTML = str.substr(hyoji_pos,1); hyoji_pos = (hyoji_pos + 1) % str.length; } function startfnc() { //関数hyoji()を1000ミリ秒間隔で呼び出す setInterval("hyoji('一文字ずつ表示します。')",1000); } </script> </body>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問