ランダム背景画像



0   名前: 午後の子猫 : 2005/07/09 01:59
<p><!--webbot bot="HTMLMarkup" startspan --><script>

var backgr1="○○○"

var backgr2="△△△"

var backgr3="×××"

var cur=Math.round(6*Math.random())

if (cur<=1)

backgr=backgr1

else if (cur<=4)

backgr=backgr2

else

backgr=backgr3

document.write('<body background="'+backgr+'" bgcolor="#FFFFFF">')

</script>

<!--webbot bot="HTMLMarkup" endspan -->

</p>



ランダム背景画像にするJavaScriptを、サンプルを公開しているサイトで探し当てたんですが、今のところ3種類の背景しか表示できません。
種類を増やすためには、↑のどこをどういじればよいのでしょうか?教えてください。

あと、var cur=Math.round(6*Math.random())の、"6"という数字と、
(cur<=1)と(cur<=4)の意味が特にわかりません。
どこから"6"とか"1"とか"4"という数字がきているのですか?
これも教えてもらいたいです。

1   名前: Pid : 2005/07/09 01:59
失礼ながら,それは非常にマズいスクリプトなので使わない方が良いです。まあ,以下も手抜きですが…(<head>...</head> 内に記述)。

<script type="text/javascript">

(function() {
var n = Math.floor(Math.random() * arguments.length);
document.write('<style type="text/css">');
document.write(' body { background-image: url("' + arguments[n] + '"); }');
document.write('<\/style>');
} )

// ここに表示したい画像を指定する。数は自由だが,コンマを忘れないこと。
( '○○○', '△△△', '×××' );

</script>


> どこから"6"とか"1"とか"4"という数字がきているのですか?

完全なランダムではなく,偏りを出すための工夫のようです。数値は適当です。たとえば,>>0 では 2 番目の画像が出やすく,3 番目の画像が出にくいようになっています。

2   名前: 午後の子猫 : 2005/07/09 01:59
なんと!
マズいものでしたか。
ご指摘&ご指導ありがとうございます。

3   名前: 空飛ぶニンジン : 2005/07/09 01:59
似たようなことなのでこのスレに質問させていただきます。

完全なランダムではなく、ごくたまに変わるような背景にしたいと思っています。
それで、マズくないもので偏りを出すにはどうすればよいのでしょうか?

4   名前: m035 : 2005/07/09 01:59
>>1さんのスクリプトを改造しましょう。
とりあえず10/7の確立で1番目の画像を、
10/3の確立で+1してもういちどループします。
<script type="text/javascript">

(function() {
var n = 1;
var cnt = 0;
while(n==1){
var p=Math.round(Math.random() * 10);
if(p<8)n==0;
else if(p<9)cnt++;
}
n = Math.floor(Math.random() * arguments.length);
document.write('<style type="text/css">');
document.write(' body { background-image: url("' + arguments[n] + '"); }');
document.write('<\/style>');
} )

// ここに表示したい画像を指定する。数は自由だが,コンマを忘れないこと。
( '○○○', '△△△', '×××' );

</script>

5   名前: m035 : 2005/07/09 01:59
<script type="text/javascript">

(function() {
var n = 1;
var cnt = 0;
while(n==1&&cnt<arguments.length){
var p=Math.round(Math.random() * 10);
if(p<8){
n==0;
}
else if(p<9){
cnt++;
}
}
n=Math.floor(Math.random() * cnt);
document.write('<style type="text/css">');
document.write(' body { background-image: url("' + arguments[n] + '"); }');
document.write('<\/style>');
} )

// ここに表示したい画像を指定する。数は自由だが,コンマを忘れないこと。
( '○○○', '△△△', '×××' );

</script>
でした。訂正します。

一覧へ戻る