1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

htmlでおみくじアプリ作成

Posted at

dotinsallでおみくじアプリ作成を勉強したので学んだことをまとめておこう。

●ランダムな数を生成するMath.random()を使って条件分岐が基本。
結果の表示方法は①switch文、②result = []としてresult[n]のように配列でまとめる。
③if文で確率ごとに条件分け、がある。

特に配列で取得するやり方は今後かなり使えそう。実際のアプリで配列を初めて使って感動した。

●ボタンを押した感を出すには下部の影とmargin-topの操作で可能

●cursor: pointer にすると手のようになってくれる

●opacity は透明性で0だと完全に透明

以下、コード例

htmlコード

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>おみくじ</title>
    <link rel="stylesheet" href="css/styles.css">
  </head>
  <body>
    <div id="btn">?</div>


    <script src="js/main.js"></script>

  </body>
</html>

CSSコード

body{
  background: #efefef;
}

#btn{
  width: 200px;
  height: 200px;
  background: #ef454a;
  border-radius: 50%;
  margin: 30px auto;
  text-align: center;
  line-height: 200px;
  color: #fff;
  font-weight: bold;
  font-size: 42px;
  cursor: pointer;
  /* cursorで矢印からポインターに変わる */
  box-shadow: 0 10px 0 #d1483e;
  /* 下に影をつける */
  user-select: none;
  /* 連打しても選択なし */
}

#btn:hover{
  opacity: 0.8;
  /* opacityとは透明性 0で完全に透明 */
}

#btn:active{
  box-shadow: 0 5px 0 #d1483e;
  margin-top: 35px;
  /* ボタンを押してる感を出す。下の影を小さくし、元の丸を同じ分だけ下げる */

}

javascriptコード

'use strict';

{
  
  const btn = document.getElementById('btn');
  btn.addEventListener('click', ()=>{
    const n = Math.random();
    //if文で確率を条件わけ
    if(n < 0.05){ //5%
      btn.textContent = '大吉'
    }else if(n < 0.2){
      btn.textContent = '中吉'
    }else{
      btn.textContent = ''
    }
    })
  }
   //配列でまとめる方法
   const results = ['大吉','大吉','大吉','大吉',''] 
   const n = Math.floor(Math.random()*4);
   // 要素数を記入してたら間違えやすいため、lengthで書いておく
   const n = Math.floor(Math.random()*results.length);
   btn.textContent = results[n];
    // btn.textContent = results[Math.floor(Math.random()*results.length)];
    //直接配列のインデックスにいれることができる
    //結果を配列に入れて結果を表示
    //switchを使うよりすっきり!!

    switch(n){
      case 0:
        btn.textContent = '大吉'
        break;
      case 1:
        btn.textContent = '中吉'
        break;
      case 2:
        btn.textContent = ''
        break;
    }
})
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?