ランダム背景画像
-
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>
でした。訂正します。