chatgpt4

サイドバー本体

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="styles.css">
  <title>サイドバー</title>
</head>
<body>
  <header>
    <button class="hamburger" onclick="toggleSidebar()">
      <span class="hamburger-line"></span>
      <span class="hamburger-line"></span>
      <span class="hamburger-line"></span>
    </button>
  </header>
  <aside class="sidebar">
    <nav>
      <ul>
        <li><a href="#">リンク1</a></li>
        <li><a href="#">リンク2</a></li>
        <li><a href="#">リンク3</a></li>
      </ul>
    </nav>
  </aside>
  <main>
    <h1>メインコンテンツ</h1>
    <p>ここにメインコンテンツが入ります。</p>
  </main>
  <script src="scripts.js"></script>
</body>
</html>

bingai

<html>
<head>
<style>
/* ハンバーガーアイコンのスタイル */
.hamburger {
  width: 30px;
  height: 30px;
  position: fixed;
  top: 10px;
  left: 10px;
  cursor: pointer;
}

/* ハンバーガーアイコンの線のスタイル */
.hamburger-line {
  width: 100%;
  height: 4px;
  background-color: black;
  margin: 5px auto;
  transition: all 0.3s;
}

/* サイドバーのスタイル */
.sidebar {
  width: 200px;
  height: 100%;
  background-color: lightgray;
  position: fixed;
  top: 0;
  left: -200px; /* サイドバーを画面外に隠す */
  transition: all 0.3s;
}

/* サイドバーの中身のスタイル */
.sidebar-content {
  padding: 20px;
}

/* サイドバーが展開されたときのハンバーガーアイコンの線の変形 */
.hamburger.active .hamburger-line:nth-child(1) {
  transform: translateY(10px) rotate(45deg);
}

.hamburger.active .hamburger-line:nth-child(2) {
  opacity: 0;
}

.hamburger.active .hamburger-line:nth-child(3) {
  transform: translateY(-10px) rotate(-45deg);
}

/* サイドバーが展開されたときのサイドバーの位置 */
.sidebar.active {
  left: 0; /* サイドバーを画面内に表示する */
}
</style>
</head>
<body>
<!-- ハンバーガーアイコン -->
<div class="hamburger" id="hamburger">
  <div class="hamburger-line"></div>
  <div class="hamburger-line"></div>
  <div class="hamburger-line"></div>
</div>

<!-- サイドバー -->
<div class="sidebar" id="sidebar">
  <div class="sidebar-content">
    <h1>サイドバー</h1>
    <p>ここにサイドバーの中身を書く。</p>
    <ul>
      <li>メニュー1</li>
      <li>メニュー2</li>
      <li>メニュー3</li>
    </ul>
  </div>
</div>

<!-- JavaScript -->
<script>
// ハンバーガーアイコンとサイドバーの要素を取得
var hamburger = document.getElementById("hamburger");
var sidebar = document.getElementById("sidebar");

// ハンバーガーアイコンをクリックしたときの処理
hamburger.addEventListener("click", function() {
  
  // ハンバーガーアイコンとサイドバーにactiveクラスを付け外しする
  hamburger.classList.toggle("active");
  sidebar.classList.toggle("active");
});
</script>
</body>
</html>

作成したコード(カウントダウンタイマー)

CountDownTimer_.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="CSSsource/hamburger.css">
  <link rel="stylesheet" href="CSSsource/logo.css">
  <script src = "JSsource/jquery-3.7.0.min.js"></script>
  <title>カウントダウンタイマー</title>
  <style>
    
    h2 {
      color: #333;
      text-align: center;
    }
    
    .container {
      max-width: 400px;
      margin-top: 5%;
      margin-left: auto;
      margin-right: auto;
      padding: 20px;
      background-color: #fff;
      border-radius: 5px;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }
    
    label {
      display: block;
      font-weight: bold;
      margin-bottom: 5px;
    }
    
    input[type="range"] {
      width: 100%;
    }
    
    button {
      display: block;
      width: 100%;
      padding: 10px;
      margin-top: 10px;
      font-weight: bold;
      text-align: center;
      color: #fff;
      background-color: #5dbcd2;
      border: none;
      border-radius: 5px;
      cursor: pointer;
    }
    
    button:hover {
      background-color: #4ba2b6;
    }
    
    #countdown {
      text-align: center;
      font-size: 24px;
      margin-top: 20px;
    }
  </style>
  <script>
    var timer;
    var totalTime;
    var paused = true;
    
    function settingCountdown() {
      if (paused) {
        var hours = parseInt(document.getElementById("hoursInput").value);
        var minutes = parseInt(document.getElementById("minutesInput").value);
        totalTime = hours * 3600 + minutes * 60; // 入力された時間と分数を秒に変換
      
        // タイマーが既に実行中の場合は停止
        if (timer) {
          clearInterval(timer);
        }
      
        timer = setInterval(updateCountdown, 1000); // 1秒ごとに更新
      }
    }
    
    function updateCountdown() {
      var hours = Math.floor(totalTime / 3600);
      var minutes = Math.floor((totalTime % 3600) / 60);
      var seconds = totalTime % 60;
        
      // タイマー表示を更新
      document.getElementById("countdown").innerHTML = hours + "時間 " + minutes + "分 " + seconds + "秒";
      if (!paused) {
        
        // 残り時間を1秒減らす
        totalTime--;
        
        // 残り時間が0になったらタイマーを停止
        if (totalTime < 0) {
          clearInterval(timer);
          alert("時間が経過しました!");
        }
      }
    }
    
    function pauseCountdown() {
      paused = true;
    }
    
    function resumeCountdown() {
      paused = false;
    }
  </script>
</head>
<body>
  <header>
    <button type="button" id="js-buttonHamburger" class="c-button p-hamburger" aria-controls="global-nav" aria-expanded="false" onclick="toggleSidebar()">
        <span class="p-hamburger__line">
        <span class="u-visuallyHidden">
            メニューを開閉する
        </span>
        </span>
    </button>
    <h1>
      <a href="">
        <img src="./img/TIMECAPTOR.png" alt="TIMECAPTOR" class="logo">
      </a>
    </h1>
  </header>
  <aside class="sidebar">
    <nav>
      <ul>
        <li><a href="../home&side/stopwatch.html">ストップウォッチ</a></li>
        <li><a href="stopwatch copy.html">タイマー</a></li>
        <li><a href="#">リンク3</a></li>
      </ul>
    </nav>
  </aside>
  <div class="container">
    <h2>カウントダウンタイマー</h2>
    <label>時間:</label>
    <input type="range" id="hoursInput" min="0" max="12" value="0" list="tlist1">
    <datalist id="tlist1">
      <option value="3"></option>
      <option value="6"></option>
      <option value="9"></option>
    </datalist>
    <span id="hoursValue">0</span> 時間
    <br>
    <label>分数:</label>
    <input type="range" id="minutesInput" min="0" max="59" value="0" list="tlist2">
    <datalist id="tlist2">
      <option value="10"></option>
      <option value="20"></option>
      <option value="30"></option>
      <option value="40"></option>
      <option value="50"></option>
    </datalist>
    <span id="minutesValue">0</span> 分
    <br>
    <button onclick="settingCountdown()">設定</button>
    <button onclick="pauseCountdown()">一時停止</button>
    <button onclick="resumeCountdown()">スタート</button>
    <h3 id="countdown"></h3>
  </div>
  
  <script>
    // スライダーの値が変更された時に表示を更新
    var hoursSlider = document.getElementById("hoursInput");
    var hoursValue = document.getElementById("hoursValue");
    hoursSlider.addEventListener("input", function() {
      hoursValue.innerHTML = hoursSlider.value;
    });
    
    var minutesSlider = document.getElementById("minutesInput");
    var minutesValue = document.getElementById("minutesValue");
    minutesSlider.addEventListener("input", function() {
      minutesValue.innerHTML = minutesSlider.value;
    });
  </script>
  <script src = "JSsource/scripts.js"></script>
  <script src="JSsource/hamburger.js"></script>
</body>
</html>

CSSsource

hamburger.css

body {
  margin: 0;
  font-family: Arial, sans-serif;
}
header {
  z-index: 90;
  width: 100%;
  height: 70px;
  position: fixed;
  left: 0;
  top: 0;
  display: column;
  justify-content: column;
  background-color: #333;
}

.sidebar {
  z-index: 10;
  position: fixed;
  top: 60px;
  left: -250px;
  width: 250px;
  height: 100%;
  background-color: #f4f4f4;
  transition: left 0.3s;
}

.sidebar.open {
  z-index: 10;
  position: fixed;
  left: 0;
}

main {
  padding: 50px;
}
  
  .c-button {
    z-index: 100;
    position: relative;
    display: inline-block;
    text-decoration: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    background-color: transparent;
    cursor: pointer;
  }
  
  
  .p-hamburger {
    z-index: 100;
    position: fixed;
    top: 8px;
    /*bottom: 0;*/
    left: 10px;
    /*right: 0;*/
    width: 48px;
    height: 48px;
    margin: auto;
    border-radius: 50%;
    border: 1px solid #f9d8ae;
    box-shadow: 0 0 2rem transparent;
    outline: none;
    -webkit-transition: all .3s ease-in-out;
            transition: all .3s ease-in-out;
  }
  .p-hamburger:hover,
  .p-hamburger:focus {
    box-shadow: 0 0 .5rem rgba(255, 255, 255, .5 );
  }
  
  .p-hamburger__line {
    position: fixed;
    z-index: 100;
    top: 32px;
    /*right: 0;
    bottom: 0;*/
    left: 25px;
    margin: auto;
    width: 18px;
    height: 2px;
    background-color: #f9d8ae;
    -webkit-transition: inherit;
            transition: inherit;
  }
  .p-hamburger__line::before,
  .p-hamburger__line::after {
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    background-color: inherit;
    content: '';
    -webkit-transition: inherit;
            transition: inherit;
  }
  .p-hamburger__line::before {
    top: -5px;
  }
  .p-hamburger__line::after {
    top: 5px;
  }
  
  .p-hamburger[aria-expanded="true"] .p-hamburger__line {
    background-color: transparent;
  }
  
  .p-hamburger[aria-expanded="true"] .p-hamburger__line::before,
  .p-hamburger[aria-expanded="true"] .p-hamburger__line::after {
    top: 0;
    background-color: #f9d8ae;
  }
  
  .p-hamburger[aria-expanded="true"] .p-hamburger__line::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  
  .p-hamburger[aria-expanded="true"] .p-hamburger__line::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  
  .u-visuallyHidden {
    position: absolute;
    white-space: nowrap;
    width: 1px;
    height: 1px;
    overflow: hidden;
    border: 0;
    padding: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%); 
    margin: -1px;
  }

logo.css

.logo {
    width: auto;
    height: 50px;
    float: right;
    margin-right: 45%;
  }