javascriptで文章を一文字ずつ表示する。
表示されている文章をクリックすると、その文章は非表示になり次の文章に切り替わります。
displayがnoneからblockになるときに一文字ずつ表示するにはどうすれば良いでしょうか?
<script type="text/javascript">
var cnt = 0;
function display(){
document.getElementById("s0"+cnt++).style.display = "none";
document.getElementById("s0"+cnt).style.display = "block";
}
</script>
<style>
a{display:none;}
#s00{display:block;}
</style>
<a id="s00" onclick="display();">00000</a>
<a id="s01" onclick="display();">11111</a>
<a id="s02" onclick="display();">22222</a>
<a id="s03" onclick="display();">33333</a>
<a id="s04" onclick="display();">44444</a>
・
・
<a id="s90" onclick="display();">00000</a>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
なんか出来ちゃったので回答しますが、自信はあまりないです。
timer?がよくわからない。
ただ、1文字ずつ表示中にさらにクリックすると、
うまいこと次へ行ってくれます。
あとidの番号をキチンとした連番に変更しました。
なにか参考になる部分でもあればと思います。
<style type="text/css">
<!--
a{display:none;}
#s0{display:block;}
-->
</style>
<script type="text/javascript">
//@cc_on
window./*@if(@_jscript_version<=5.8)
attachEvent('on'+ @else @*/ addEventListener(/*@end @*/
'load',function(){
document.getElementById("box")./*@if(@_jscript_version<=5.8)
attachEvent('on'+ @else @*/ addEventListener(/*@end @*/
'click', function( evt ){
var t = evt. /*@if(@_jscript_version<=5.8) srcElement
@else @*/ target /*@end @*/;
if( t.nodeName == "A" && /^s\d$/.test(t.id) ){
if( t.timer )clearInterval( t.timer );
var num = parseInt( t.id.replace("s","") ) + 1;
var next = document.getElementById( "s" + num );
if( next ){
t.style.display = "none";
display( next );
}
}
}, false );
}, false );
function display( next ){
var str = next.firstChild.nodeValue;
var cnt = 0, len = str.length;
next.firstChild.nodeValue = str.substring( 0, ++cnt);
next.timer = setInterval( function(){
next.firstChild.nodeValue = str.substring( 0, cnt );
next.style.display = "inline";
if( cnt < len ){
cnt++;
}else{
clearInterval(next.timer);
}
},500);
}
</script>
</head>
<body>
<div id="box">
<a id="s0">00000</a>
<a id="s1">11111</a>
<a id="s2">22222</a>
<a id="s3">33333</a>
<a id="s4">44444</a>
<a id="s5">55555</a>
<a id="s6">66666</a>
<a id="s7">77777</a>
<a id="s8">88888</a>
<a id="s9">99999</a>
<a id="s10">1010101010</a>
</div>
</body>
</html>
No.1
- 回答日時:
1文字ずつ表示ってこういうことでいいのでしょうか。
<script type="text/javascript">
var cnt = 0;
function display(){
document.getElementById("s0"+cnt++).style.display = "none";
//document.getElementById("s0"+cnt).style.display = "block";
//blockだと1行ずれて表示されてしまうため
document.getElementById("s0"+cnt).style.display = "inline";
displayOneCharacter();
}
function displayOneCharacter() {
//元の文字列を退避
var temp = document.getElementById("s0"+cnt).innerHTML;
//文字列の長さ
var len = temp.length;
//表示する文字列のインデックス
var endIndex = 0;
//最初は1文字目だけ表示
document.getElementById("s0"+(cnt)).innerHTML = temp.substr(0, ++endIndex);
//一定時間ごとに1文字ずつ表示文字を追加していく
var timeId =
setInterval(
function() {
document.getElementById("s0"+cnt).innerHTML = temp.substring(0,++endIndex);
if(endIndex === len) clearInterval(timeId);
}
,1000 //1秒毎
);
}
</script>
もっと素敵なやり方をどなたかが教えてくれるといいのですが・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript htmlとcssで分数を表示後、分数の右側に文書を書きたい 1 2022/04/28 10:09
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
変数内容をHTML内で表示する方法
-
javascriptでURLにマウスオーバー
-
document.getElementById( ).st...
-
表示・非表示のスクリプトで、...
-
取得した要素がインライン要素...
-
dblclickでdiv要素を一回だけ作...
-
マウスオーバー、アウト時の背...
-
プルダウンとチェックボックス...
-
removeAttribute()メソッドで削...
-
iframe内のリンクが飛ばないの...
-
HTMLとJavaScriptで作ったタイ...
-
jTweetsAnywhereでハッシュタグ...
-
ボタンを押せば、画面が切り替...
-
jqueryを使って無駄なspanタグ...
-
createElementで作成した要素を...
-
javascriptテキストBOX色を元に...
-
【jquery】スクロールで背景画...
-
javascriptでpostした値が取得...
-
タブで開いてさらにタブ内をア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
IFRAMEの表示/非表示を切り替え...
-
タブで開いてさらにタブ内をア...
-
変数名をどのようにつけるのが...
-
クリックで色変更後に既に変更...
-
表示・非表示のスクリプトで、...
-
HTMLとJavaScriptで作ったタイ...
-
console.log結果をhtmlで表示し...
-
jQueryでクリックされた要素のi...
-
HTMLタグに複数のクラスを設定...
-
指定したパスが現URLに含まれて...
-
iframe内のリンクが飛ばないの...
-
背景色を透明化
-
テキストエリア内の一部の文字...
-
変数内容をHTML内で表示する方法
-
classの中の<a>タグにidを追加
おすすめ情報