<p id="m1"></p>
js側
$(function(){ gogo(); }); var m_box=new Array(); m_box[0]="メッセージ(1)"; m_box[1]="メッセージ(2)"; m_box[2]="メッセージ(3)"; m_box[3]="メッセージ(4)"; m_box[4]="メッセージ(5)"; var i=0,n=0; function gogo(){ if(i<=m_box[n].length){ my_message=m_box[n].substring(0,i); $("#m1").text(my_message); i++; setTimeout("gogo()",100); //1文字を表示させる時間 }else{ i=0; n++; setTimeout("gogo()",2000);
/
/1行を表示させる時間
} if(n==m_box.length) n=0;
/
/最初に戻る
}
文字列を改行したい場合は、エスケープ文字(バックスラッシュ)を使います。
キーボードのバックスラッシュを押しても『¥』にしか表示されない。
『¥』でも問題なし、理由は知らない。
改行→\n "メッセージ\n(1)"
★jsの解説
jQueryで関数「gogo」を呼び出しています
$(function(){
gogo();
});
表示させる文字を配列「m_box」に入れます。(一行の場合はいらない)
var m_box=new Array();
m_box[0]="メッセージ(1)";
m_box[1]="メッセージ(2)";
m_box[2]="メッセージ(3)";
m_box[3]="メッセージ(4)";
m_box[4]="メッセージ(5)";
変数「i」と「n」に初期値いれます。
var i=0,n=0;
※複数の変数の場合【,】でつなぐ
関数「gogo」について
function gogo(){ if(i<=m_box[n].length){ my_message=m_box[n].substring(0,i); $("#m1").text(my_message); i++; setTimeout("gogo()",100); //1文字を表示させる時間 }else{ i=0; n++; setTimeout("gogo()",2000);
/
/1行を表示させる時間
} if(n==m_box.length) n=0;
/
/最初に戻る
}
setTimeout("関数名",時間)…一定時間後に繰り返す。設定時間後に関数の呼び出し
※時間は1000→1秒
substring(”開始インデックス”,”最終インデックス”)…指定した文字列を取得
※例えば「いちご」という文字列の場合
い→0
ち→1
ご→2
なので(”0””3”)と指定すると「いちご」※最終インデックスは含まれないので「2」ではなく「3」
上記をふまえて簡単にすると↓↓
もしiが、配列(m_box)【n】番目の文字列の数と同じ、または以下であれば、
100ミリ秒後に、下記を繰り返す。
ID(m1)に、配列(m_box)【n】の文字列のi番目を表示させてね
それが終わったらiに+1してね。(文字列が順番に表示されていく)
iに+1を繰り返し、iが配列(m_box)【n】番目の文字列の数をオーバーしたら
(【n】の文字列の数を超したら)iを0に戻して【n】に+1して、
gogo()してね (また文字列の数をこすまで、iが+1され続ける)
んでもって【n】が配列(m_box)の数と同じになったら、nを0最初にもどしてね
最初に初期値「0」が入ってるので、
配列の【0】メッセージ(1)の文字列の数(文字数8)をこすまで
substringで指定している一部が表示される。
iには1がプラスされつづける。
8をこしたら次の配列【1】に進む。iはまた0にもどる。
それの繰り返し
●文字列の数を調べたいときはアラートで配列を指定して調べたりする。
●メッセージが一行の場合は配列の部分を削除↓ ※長文の場合、微調整してもチラッとタグが見えちゃうので、 改行したいときは、配列をそのまま使う。
$(function(){
gogo();
});
var m_box=('一行だけのメッセージ、一行だけのメッセージ。');
var i=0
function gogo(){
if(i<=m_box.length){
my_message=m_box.substring(0,i);
$("#m1").text(my_message);
i++;
setTimeout("gogo()",100);
}
if(i==m_box.length) i=0;
}
0 件のコメント:
コメントを投稿