JavaScript ランダム関数 Math.random() まとめ + css3
2012.04.20
この記事は最終更新日から1年以上が経過しています。
前回書いた、
ActionScript ランダム関数 Math.random() まとめ
をそっくりそのまま、JavaScriptにしてまとめてみました。
TweenerのアニメーションはCSS3で実装しておりますので、webkit系ブラウザ(safari,GoogleChome)等での確認して頂ければ幸いです。
前回の記事「ActionScript ランダム関数 Math.random() まとめ」を比べながら見て頂ければと。
「Math.random」は、0 以上 1 未満の浮動小数で結果を返します。
では、調べましょう。
ランダム関数「Math.random」はActionScriptとJavaScriptでは同じ使い方となります。
JavaScriptを記述する前にHTML,CSSの用意をしましょう。
HTML
<div class="randomArea"> <h5>乱数表示</h5> <p class="txt" id="randomTxt001"></p> <p class="startBtn" id="startBtn001"><a href="#">start</a></p> </div>
基本はこの形でいきます。
CSS
.randomArea:after{content:'';display:block;clear:both;height:0;visibility:hidden;}
.randomArea h5{
margin-top:10px;
font-weight:normal;
font-size:24px;
}
.randomArea h6{
margin-top:6px;
font-weight:normal;
font-size:20px;
}
.randomArea .txt{
margin-top:10px;
height:36px;
border-bottom:#ccc 1px solid;
font-size:32px;
color:#016699;
}
.randomArea .unseiTxt{
float:left;
margin-top:8px;
font-size:32px;
color:#f00;
}
.randomArea .ball{
background:#f00;
width:50px;
height:50px;
border-radius:25px;
-webkit-border-radius:25px;
margin-top:10px;
}
.randomArea .startBtn{
float:right;
margin-top:20px;
}
.randomArea .startBtn a{
padding:5px 25px;
background:#000000;
color:#ffffff;
text-decoration:none;
}
.randomArea .startBtn a:active{
background:#f00;
}
h5、h6は記事に影響いかないように設定しております。
.ballに関しては、CSS3で円形にしております。
ではJavaScriptの用意。
まず、idを取得するための記述を。
JavaScript id取得
function $(e){ return document.getElementById(e);}
このように記述すると、$(“startBtn001”)のようにjQueryでidを取得するような形で取得が出来ます。
JavaScript ボタンイベント
$("startBtn001").firstChild.onclick = random001;
それぞれのボタンがクリックされた時にイベントを実行します。
今回、001〜008の連番を付けております。
Math.random
JavaScript random001()
function random001(){
ransu = Math.random();
$('randomTxt001').innerHTML = ransu;
return false;
}
まずは、乱数を発生させます。
Math.random Math.floor
このままではとても使うには不便なので、使えるように数字を一桁にしましょう。
その為には、まず生成した乱数に10を掛けます。
function random002(){
ransu = Math.random()*10;
$('randomTxt002').innerHTML = ransu;
return false;
}
10掛けた乱数をMath.floorで整数にします。
これで0~9の整数をランダムに生成することが出来ます。
function random003(){
ransu = Math.floor(Math.random()*10);
$('randomTxt003').innerHTML = ransu;
return false;
}
おみくじ
前回同様、おみくじを作ります。
0〜3の場合、「凶」、4、5の場合「中吉」、6〜9の場合「大吉」にします。
HTML
<div class="randomArea"> <h5>乱数表示</h5> <p class="txt" id="randomTxt004"></p> <h6>今日の運勢</h5> <p class="unseiTxt" id="uranaiTxt"></p> <p class="startBtn" id="startBtn004"><a href="#">start</a></p> </div>
HTMLを少し付け加えます。あとはActionScriptとほぼ同じです。
function random004(){
ransu = Math.floor(Math.random()*10);
$('randomTxt004').innerHTML = ransu;
var uranaiTxt = $('uranaiTxt');
if(ransu<=3){
uranaiTxt.innerHTML = "凶";
}else if(ransu>3 && ransu<6){
uranaiTxt.innerHTML = "中吉";
}else if(ransu>=6){
uranaiTxt.innerHTML = "大吉";
}
return false;
}
ボール移動
前回同様、今度はボールオブジェクトをランダムに移動させましょう。
Startボタンを押すとランダムにX座標を移動します。
HTML
<div class="randomArea"> <h5>X座標</h5> <p class="txt" id="randomTxt005"></p> <p class="ball" id="ball005"></p> <p class="startBtn" id="startBtn005"><a href="#">start</a></p> </div>
JavaScript
function random005(){
ransu = Math.random()*10;
ransu = Math.floor(ransu)/2*100;
$('randomTxt005').innerHTML = ransu;
$('ball005').style.marginLeft = ransu +"px";
return false;
}
$(‘ball005’).style.marginLeft = ransu +”px”;で、マージンレフトの値を変えています。
そのままだと瞬間移動しているので、CSS3のtranslateを使いアニメーションさせます。
JavaScript
$("ball006").style.webkitTransform = "translate(0px,0px)";
$("ball006").style.webkitTransitionProperty = "-webkit-transform";
$("ball006").style.webkitTransitionDuration = "0.4s";
$("ball006").style.webkitTransitionTimingFunction = "ease-in-out";
このようにJavaScriptで設定。マージンレフトの設定部分を
$("ball006").style.webkitTransform = "translate(" +ransu+ "px,0px)";
に変更します。
function random006(){
ransu = Math.random()*10;
ransu = Math.floor(ransu)/2*100;
$('randomTxt006').innerHTML = ransu;
$("ball006").style.webkitTransform = "translate(" +ransu+ "px,0px)";
return false;
}
ランダムに色を変化
前回同様、色を変化させます。
JavaScriptでの色の変化は0xFFFFFFとtoString(16)を使い、16進数の数字に変更し、値を代入することによって対象の色を変更させることができます。
Math.floor(Math.random() * 0xFFFFFF).toString(16);
16進数にするまえに整数にする必要があります。
これらを踏まえ、ボールの色を変化させましょう。
JavaScript
function random007(){
newColor = Math.floor(Math.random() * 0xFFFFFF).toString(16);
$('randomTxt007').innerHTML = newColor;
$("ball007").style.backgroundColor = "#" + newColor;
return false;
}
では、最後に色の変化と共にX座標のボール移動も行います。
random006とrandom007を合体させた形となります。
function random008(){
ransu = Math.random()*10;
ransu = Math.floor(ransu)/2*100;
newColor = Math.floor(Math.random() * 0xFFFFFF).toString(16);
$('randomTxt008').innerHTML = newColor;
$("ball008").style.backgroundColor = "#" + newColor;
$("ball008").style.webkitTransform = "translate(" +ransu+ "px,0px)";
return false;
}
以上になりますー。


















