JavaScriptでスタッフロールを作る方法について解説

HOME
更新日:2017.03.02
HOMEJavaScript入門 > スタッフロール

スタッフロール

今回は映画やドラマのラストで、 キャストやスタッフの一覧が下から上に流れるスタッフロールをJavaScriptで作ってみたいと思います。

スタッフロールのスクリプト

では最初に、640×480程度のサブウィンドウ画面中央に表示させましょう。 HTMLのBODY内に、以下のように記入なさってください。

<script>

function winOpen()
{
  var w=(screen.width-640)/2;
  var h=(screen.height-480)/2;
  
  window.open("staffroll.html","sub","width=640,height=480,"+
    "left="+w+",top="+h+",scrollbars=no,menubar=no,toolbar=no");
}

</script>

<form>
<input type="button" value="staffroll" onclick="winOpen()">
</form>

次にstaffroll.htmlを作ります。 bodyタグ以下に下の文字をコピー&ペーストしてみてください。 bodyタグ内にはonloadイベントを記入し、 画面をスクロールさせる関数scroll()を呼び出します。

<body onload="scroll()">
<br><br><br><br><br><br><br><br><br><br>
STAFF<br>
<br><br><br>
企画<br>パズルネット智慧<br><br><br>
構成<br>パズルネット智慧<br><br><br>
プログラム<br>パズルネット智慧<br><br><br>
製作環境<br>UTF-8Writer<br>http://pori2.net/<br><br><br>
技術提供<br>JavaScript入門<br>http://pori2.net/js/<br><br><br>
<br><br><br>
<span style="font-size:80pt">Fin</span><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
</body>

さらに、ヘッダーでスタイルを指定します。 背景を黒色,文字サイズを20ptで太字、センタリング,文字色を白色にします。 以下のスタイルシートをstaffroll.htmlのヘッダー部分に記入してみてください。

body
{
  background-color:black;
  font-size:20pt;
  font-weight:bold;
  text-align:center;
  color:white;
}

前置きが長くなりましたが、いよいよスタッフロールのスクリプトです。 中身はわずか2行だったりします。 staffroll.htmlのヘッダーに、以下のスクリプトを記入なさってください。

<script>

function scroll()
{
  scrollBy(0,2);
  setTimeout("scroll()",100);
}

</script>

<サンプル>

scrollBy()を使って、画面を2px下にずらします。 そしてsetTimeout()を用いて、100ミリ秒毎に関数scroll()を呼び出します。 これで画面が徐々に下に移動し、文字が上に流れているように見えるのです。 もっと滑らかに見せたければ、移動量を1pxにして呼び出し間隔を半分にしてみてください。

スタッフロールを実際に作る場合は、最初と最後は改行タグではなく、 透明画像を用いて縦幅を調整するとベターです。 画像だとheight属性を使ってきちんとした縦幅を指定できるからです。

<img src="blank.gif" height="480" width="1" alt=""><br>
STAFF<br>
…(以下略)

例えば上のように最初に縦幅480pxの透明画像を入れておけば、 画面を開いた時には何も表示されておらず、 すぐに下から「STAFF」の文字が現れることになります。

あとは音楽でも流せば本物のスタッフロールに見せることができます!