映画でよく見るエンディングの演出のようなダイナミックHTMLです。 テキストがフェードインしながら下からスクロールアップし、上の方でフェードアウトするスクリプトです。 Web演出用にもってこいです。
「エンディング?!」のマイナーバージョンアップ版でスクロールスピードやフェードスピードが自由に設定できます。
無限にループする機能を設けるため、以前の公開版に対して処理方法を若干変更しました。 スクリプトの改造が若干楽になっています。(2000.3)
HEAD部分にスタイルとスクリプトを記述します。 BODY部分には、DIV要素に対してID属性iL1,iL2・・・(テキスト分)を指定します。
表示するテキスト、そのスタイル、スクロール速度、フェード位置などが変更可能です。
IE4,NN4以上
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> <TITLE>エンディング!?:2</TITLE> <STYLE TYPE="text/css"> <!-- .Style1{ position: absolute; font-size: 28pt; font-weight: bold; } --> </STYLE> <SCRIPT LANGUAGE="javascript" TYPE="text/javascript"> <!-- //ブラウザのバージョンチェック var brw_v = navigator.appVersion.charAt(0); var brw_n = navigator.appName.charAt(0); var iIE4 = false; var iNN4 = false; if((brw_v >= 4)&&(brw_n == "M"))iIE4 = true; if((brw_v >= 4)&&(brw_n == "N"))iNN4 = true; var Laymax = 5; //字幕(レイヤー)数 var FadeStartR = 0.8; //フェードイン開始位置:垂直方向画面高さに対する比率 var FadeEndR = 0.3; //フェードアウト開始位置:垂直方向画面高さに対する比率 var ActSpeed = 1; //割り込み:小=速 var ScrSpeed = 2; //スクロールスピード:大=速 var FadeSpeed = 4; //フェードスピード:小=速 var PLeft = 100; //左位置 var PHeight = 50 ; //レイヤー間隔(垂直方向) var Comments = new Array(); Comments[1] = "<DIV CLASS='Style1'>「エンディング?!」の<\/DIV>"; Comments[2] = "<DIV CLASS='Style1'>バージョンアップ版!!<\/DIV>"; Comments[3] = "<DIV CLASS='Style1'>スクロールスピードや<\/DIV>"; Comments[4] = "<DIV CLASS='Style1'>フェードスピードが<\/DIV>"; Comments[5] = "<DIV CLASS='Style1'>自由に設定できます。<\/DIV>"; var Mugen = true; //無限ループをする=true しない=false 2000.3追加 var lay = new Array(); var Lflag = false; var TimeID; var FadeStart; var FadeEnd; function Init(){ if(iIE4){ for(i = 1; i <= laymax; i++){ lay[i] = document.all("il"+i); lay[i].style.visibility = "hidden"; } } if(inn4){ for(i = 1; i <= laymax; i++){ lay[i] = document.layers["il"+i]; lay[i].visibility = "hide"; } } lflag = true; init_data(); getscrsize(); fadestart = math.floor(scry * fadestartr); fadeend = math.floor(scry * fadeendr); setcompos(); scroll(); } var scry; function getscrsize(){ if(iie4){ scry = document.body.clientheight; } if(inn4){ scry = innerheight; } } var composy = new array(); function setcompos(){ for(i = 1; i <= laymax; i++){ composy[i] = fadestart + (i - 1)*pheight + 20; countfadein[i] = 99; countfadeout[i] = 99; } } var countfadein = new array(); var countfadeout = new array(); var countf = new array(); var sflag = new array(); var eflag = new array(); var com; var f_tmp; function init_data(){ countscr = 0; for(i = 1; i <= laymax; i++){ countf[i] = 0; sflag[i] = true; eflag[i] = true; } } function scroll(){ if(lflag){ for(i = 1; i <= laymax; i++){ composy[i] -= scrspeed; if(iie4){ lay[i].style.top = composy[i]; lay[i].style.left = pleft; } if(inn4){ lay[i].top = composy[i]; lay[i].left = pleft; } if((composy[i] <= fadestart)&&(sflag[i])){ sflag[i] = false; countfadein[i] = 0; if(iie4)lay[i].style.visibility="visible"; if(inn4)lay[i].visibility="show"; } if(countfadein[i] < 99)fadein(i); if((composy[i] <= fadeend)&&(eflag[i])){ eflag[i] = false; countfadeout[i] = 0; } if(countfadeout[i] < 99)fadeout(i); f_tmp = false; if((countfadeout[i] != 99)||(eflag[i] != false)){ f_tmp = true; } lflag = f_tmp; } }else{ if(mugen == true){ init(); }else{ cleartimeout(timeid); } } timeid = settimeout("scroll()",actspeed); } var colorpltin = "fedcba9876543210"; var colorpltout = "0123456789abcdef"; function fadein(com){ if(countfadein[com] < colorpltin.length){ z = colorpltin.charat(countfadein[com]); colorf = z+z+z+z+z+z; setcolor(com,colorf); if(countf[com] >= FadeSpeed){ CountFadeIn[Com]++; CountF[Com] = 0; }else{ CountF[Com]++; } }else{ CountFadeIn[Com] = 99; } } function FadeOut(Com){ if(CountFadeOut[Com] < colorpltout.length){ z = colorpltout.charat(countfadeout[com]); colorf = z+z+z+z+z+z; setcolor(com,colorf); if(countf[com] >= FadeSpeed){ CountFadeOut[Com]++; CountF[Com] = 0; }else{ CountF[Com]++; } }else{ CountFadeOut[Com] = 99; } } function SetColor(Com,ColorF){ if(iIE4){ lay[Com].style.color = ColorF; lay[Com].innerHTML = Comments[Com]; lay[Com].style.top = ComPosY[Com]; lay[Com].style.left = PLeft; } if(iNN4) { lay[Com].document.open(); lay[Com].document.fgColor = ColorF; lay[Com].document.write(Comments[Com]); lay[Com].document.close(); } } // --> </SCRIPT> </HEAD> <BODY onload="Init()"> <DIV CLASS="Style1" ID="iL1"></DIV> <DIV CLASS="Style1" ID="iL2"></DIV> <DIV CLASS="Style1" ID="iL3"></DIV> <DIV CLASS="Style1" ID="iL4"></DIV> <DIV CLASS="Style1" ID="iL5"></DIV> </BODY> </HTML>