JavaScript課題:クリックすると背景色がランダムで切り替わる

JavaScript

クリックするたびにブラウザの背景色がランダム色で切り替わるプログラムを作ってください。

実行イメージ(クリックすると背景色が変わります)

参考

解答例

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <script src="main.js"></script>
    <title>random bg color</title>
</head>
<body>
    <main><p>Click!</p></main>
</body>
</html>

style.css

/* style.css */
@charset "utf-8";

*{
    margin: 0;
    padding: 0;
}

body{
    display: grid;
    grid-template-columns: 100vw;   /* ビューポート幅最大 */
    grid-template-rows: 100vh;      /* ビューポート高さ最大 */
}

main{
    justify-self: center;   /* 横方向中央揃え */
    align-self: center;     /* 縦方向中央揃え */

    color: #555;
    font-size: 10vw;
    font-family: serif;
}

main.js

// main.js

// ランダムカラー文字列を生成して返す関数
function getRandomColor(){
    const get256 = ()=>{ return Math.floor(Math.random()*256); };    // 0 ~ 255を返す
    let [r, g, b] = [get256(), get256(), get256()];                 // ランダムでRGBカラーを設定
    let color = `rgb(${r}, ${g}, ${b})`;                            // 文字列生成 'rgb(XX, XXX, XXX)'
    return color;
}

window.addEventListener("load", ()=>{
    // クリックすると背景色が切り替わる
    window.addEventListener("click", ()=>{
        document.getElementsByTagName("body")[0].style.backgroundColor = getRandomColor();
    })
});

コメント

タイトルとURLをコピーしました