20.乱数を使う(リンク、画像の切り替え、背景の切り替え)

乱数というのはその名のとおり、変数をランダムに発生させるものです。乱数はJavaスクリプトだけではなく、今日のコンピュータプログラムにはなくてはならないもので、ほとんどの言語(C言語、C++言語、Java言語、Pascalなど)に乱数が使われています。ここでは乱数を使ったリンクおよび画像の切り替え、背景画像の切り替えを説明します。
 (説明)
通常JavaScriptの乱数は0から1の間で発生します。そのため目的の範囲内で乱数を発生させるには以下のスクリプトを書きます。
  Math.ceil(値の範囲*Math.random())
これは先ほども言ったとおり乱数は0から1の間の小数で発生するので、目的の範囲内の最大値をかけると、乱数は0からその値の範囲内になるからです。
たとえば、1から6までの数字からランダムに出したい場合は、
  Math.ceil(6*Math.random());(ceil=切り上げ)となります。
また上の場合で0から5までの数字から出したい場合は、Math.floor(floor=切り捨て)メソッドを、0から6までの数字から出したい場合は、Math.round(round=四捨五入)メソッドを使います。(赤字の部分)

 (1)リンクの切り替え(その1)

<SCRIPT language="JavaScript">
<!--
function ChangeLink(){
var ransuu1=Math.ceil(21*Math.random())
if(ransuu1<="9"){ransuu1="0"+ransuu1;};
document.write("<A HREF='",ransuu1,".htm'>ただいまのリンクは「",ransuu1,".htm」です。</A>");
}
ChangeLink();
//-->
</SCRIPT>
実行結果


 (2)リンクの切り替え(その2)

<SCRIPT language="JavaScript">
<!--
var ransuu2=Math.ceil(5*Math.random())
function ChangeLink2(){
if(ransuu2==1){document.write("<A HREF='http://www.biglobe.ne.jp/'>");}
else if(ransuu2==2){document.write("<A HREF='http://www.freeweb.ne.jp/'>");}
else if(ransuu2==3){document.write("<A HREF='http://www.yahoo.co.jp/'>");}
else if(ransuu2==4){document.write("<A HREF='http://www.lycos.co.jp/'>");}
else if(ransuu2==5){document.write("<A HREF='http://www.avexnet.or.jp/'>");}
}
ChangeLink2();
document.write("<IMG SRC='randomlink.gif'></A>");
//-->
</SCRIPT>

実行結果


 (3)画像の切り替え

<SCRIPT language="JavaScript">
<!--
function ChangeImg(){
var ransuu3=Math.floor(7*Math.random())
document.write("<IMG SRC='risky",ransuu3,".jpg' WIDTH='64' HEIGHT='64' BORDER='0'>");
}
ChangeImg();
//-->
</SCRIPT>
実行結果


 (4)背景画像の切り替え

<HTML>
<TITLE>背景画像の切り替え</TITLE>
<SCRIPT language="JavaScript">
<!--
function ChangeBg(){
var ransuu4=Math.floor(7*Math.random())
document.write("<BODY background='ayu",ransuu4,".jpg'>");
}
ChangeBg();
//-->
</SCRIPT>
<NOSCRIPT><BODY></NOSCRIPT>

</BODY>
</HTML>

このスクリプトでは<SCRIPT>〜</SCRIPT>が<BODY>タグの役割を果たしますが、JavaScriptが動作しないブラウザでは<SCRIPT>〜</SCRIPT>間を実行しないため、先頭の<BODY>タグがない状態となります。このままだとJavaScriptが動作しないブラウザではエラーになりますので</SCRIPT>タグの下に<NOSCRIPT><BODY></NOSCRIPT>タグを設置しています。こうすることでJavaScriptが動作しないブラウザでは<NOSCRIPT>〜</NOSCRIPT>間の<BODY>タグが実行され、エラーを回避できます。(青字の部分)
実行結果は背景に表示されます。
BACK