忍者ブログ
管理人の妄言たれながし個人memo
2024-051 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 prev 04 next 06
237  236  235  234  233  232  231  230  229  228  227 
×

[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のミランダの誕生日からの変更でした。

PR
NAME
TITLE
COLOR
MAIL
URL
COMMENT
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
PASS
カレンダー
04 2024/05 06
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
フリーエリア
最新CM
[10/17 KARIKO]
[10/26 みう]
[06/05 sa-na]
[06/02 みう]
[02/15 遠野]
プロフィール
管理人:
河口和乃
職業:
腐女子(職業?)
ゲーム系同人やってるオタ。でも新しい波についていけない老人。しかし最近は年甲斐もなく某少年誌に傾倒してるため、口を開けばそっちの話ばっかり。年考えろ。(死
バーコード
ブログ内検索
アクセス解析
"河口和乃" WROTE ALL ARTICLES.
PRODUCED BY SHINOBI.JP @ SAMURAI FACTORY INC.
忍者ブログ [PR]