コレができないとヤバい!

昨日、電車の中吊り広告で「コレができないとヤバい!」というのがあった。
「脳力ドリル」の広告で、1〜50の数字が散らばってて、3分以内に全部順番に目で追えないと、脳が「ヤバい」らしい。

それを見て、これはひょっとすると java script の乱数と、最近極めた css の position を使えば同じ事が出来るかも!
ってことで、さっそく作ってみた。

*更新の度に乱数で数字を表示
*1〜20まで目で追って、最後に OK ボタンをクリック
*30秒以内に OK が押せなかった場合は、タイムアップのアラート

実際作ってみると、なかなか難しくて最初のイメージ通りすんなりとはいかなかった。
残念ながら、まだ全然 position を極めていないことも発覚したし…

現段階ではスキルが足りなくて妥協した部分もあるけど、いろいろと新しい命令とかルールとかがわかって、すごく勉強になった。

数字はあえて、見える程度に重なるように表示にしたけど、100回に1回くらいは重なりすぎて見えない時があるw
重ねないほうがいいかなあ。

もっと java script がわかってきたら、こんな脳トレをテーマにしたサイトもいいかもしれない。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
*{
	background-color:#000;
	color:#fff;
	font-size: 15px;
	font-weight:bold; }
p{line-height:1em;padding:5px;text-align:center;}
</style>
</head>
<body>
	<form>
	<input style="position:absolute;top:30px;left:255px;width:100px;" type="button" value="OK" onclick="sp()">
	</form>
<script type="text/javascript">

var c =["001","c44","111","fff","a20","349","fff","f00","444","00a","070","f70","e0e"];
var d =["a7f","faa","999","0a3","fee","fff","333","fff","ff0","bbf","bfb","feb","fdf"];
var e =["solid","double","groove","ridge","inset","outset"];

	var a =new Array();
	var xx=7 , yy=5 ;	
	for( i=0; i<xx; i++){ a[i] = new Array();
	for( j=0; j<yy; j++){ a[i][j] = 0; }}

for(i=20;i>0;i--){

	repeat:	for (;;){
	x=Math.floor(Math.random()*xx);
	y=Math.floor(Math.random()*yy);
	if (a[x][y]==0){a[x][y]++;break repeat;}}
	
	x=x*80+Math.floor(Math.random()*10 )+50;	
	y=y*80+Math.floor(Math.random()*10 )+80;

	f=Math.floor(Math.random()*30 )+20;
	
	k=Math.floor(Math.random()*25 )+1;
	h=Math.floor(Math.random()*2 );
	if (h==0){k+=335;}
		
		dat ="<p style='position:absolute;top:"+y+"px;left:"+x+"px;"   
		dat+="font-size:"+f+"px;"
		
			h=Math.floor(Math.random()*13);
			b=Math.floor(Math.random()*6);
			g=Math.floor(Math.random()*3)+3;			

			dat+="color:#"+c[h]+";"
			dat+="border:"+g+"px "+e[b]+" #"+c[h]+";"
			dat+="background-color:#"+d[h]+";"
					
		dat+="-webkit-transform: rotate("+k+"deg);-moz-transform: rotate("+k+"deg);"
		dat+="'>"

document.write(dat+i+"</p>");}

		function timeup(){
		alert("タイムアップ!\n30秒経過しました。");}

	function sp(){
	clearTimeout(time);
	alert("Good!");	}

time=setTimeout("timeup()",30000);

</script>
</body>
</html>