[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
なんかログインしたはいいがめんどくさくなってきたので、scriptメモでお茶濁し。
別館で使用中のバースデイメッセージのscript。
この間のラビので一周したはずなのでネタばらし。
(まあ当日にあたらないと見られないため、見たことない人多数かと思うが…)
今回はちと長め。
<SCRIPT language="JavaScript">
<!--
//birthday message;(とりあえず4人分+1だけ抜粋)
myTbl = new Array(
2, 20, "Happy birthday to Lenalee!",
6, 6, "Happy birthday to Kanda!",
8, 10, "Happy birthday to Lavi!",
12, 25, "Happy birthday to Allen!",
12, 25, "Merry Christmas!"
);
//JavaScriptでは2次元以上の配列がないので、
//1次元の配列を3要素で1レコードとみなしている。
myHit = 0;
myLastCnt = myTbl.length / 3;
myFlg=1;
myCnt = 0;
myDspFlg = 0;
function myFunc(){
myD = new Date(); //今日の日付の取得。
myMonth = myD.getMonth()+1;
myDate = myD.getDate();
for(i=0; i<myLastCnt; i++){
if (myTbl[i*3] == myMonth && myTbl[i*3+1] == myDate){
if (myHit==0) {
myMsg1 = myTbl[i*3+2];
myHit=1;
} else if (myHit==1) {
myMsg2 = myTbl[i*3+2];
myHit=2;
}
}
}
if (myHit==0) myMsg1="";
//このブロックでは日付と一致する配列のメッセージを取得。
if (myFlg==1) {
myDisp(myMsg1);
} else if (myFlg==2) {
myDisp(myMsg2);
}
}
function myDisp(myMsg) {
if (myDspFlg == 0){
document.myForm.myFormMes.value = myMsg.substring(0, myCnt);
if (myCnt == myMsg.length){
myCnt = 0;
myDspFlg = 1;
}else{
myCnt +=1;
}
//メッセージが1文字ずつ増えていく表示
}else if (myDspFlg == 1){
document.myForm.myFormMes.value="";
myDspFlg = 2;
//点滅表示のうち、メッセージが消える部分
}else{
document.myForm.myFormMes.value = myMsg;
myCnt ++;
if (myCnt == 5){
myDspFlg = 0;
myCnt = 0;
//5回点滅したら始めに戻る。
if (myFlg==1 && myHit==2) {
myFlg=2;
} else if (myFlg==2) {
myFlg=1;
}
}else{
myDspFlg = 1;
}
}
}
//--></SCRIPT>
//HTMLでの記述
<FORM name="myForm">
<INPUT type="text" size="27" name="myFormMes" readonly>
</FORM>
<SCRIPT language="JavaScript">
<!--
setInterval("myFunc()", 200);
//-->
</SCRIPT>
スタイルシートでボーダーを見えなくしてるので普段はわかりませんが、実はメッセージを表示させるフォームは最初から存在していて、常にこのメッセージスクリプトを実行しています。
JavaScriptは見る人のブラウザが実行するので、本当はこういうスクリプトは組まないにこしたこたないんですが、まあ今時これくらいなら負担にはならんだろうと…。
そして常(というか、正確には0.5秒ごと)に実行してるのはメッセージを繰り返し実行するためと、日付変更とほぼ同時にスタートorエンドになるよう(なってる筈)にするため。
ちなみに青字部分は、表示するメッセージが2つある場合、交互に表示させるための指示。
今回のメッセージリストで言えば、12/25のアレンの誕生日とクリスマスのメッセージ。
でも実際のところ、去年のクリスマスには修正が間に合わず(かなり直前で直そうと思い立ったから)、正月1/1のミランダの誕生日からの変更でした。
11 | 2024/12 | 01 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |