カラフルタイマー
00:00:00
以下が、ユーザーの要望に基づいて作成したHTML、CSS、JavaScriptのコードです。
HTML:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>カラフルタイマー</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="container">
<h1>カラフルタイマー</h1>
<div class="timer">
<p id="timer">00:00:00</p>
<div class="buttons">
<button id="start">スタート</button>
<button id="stop">ストップ</button>
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
```
CSS:
```
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
h1 {
font-size: 3rem;
margin-bottom: 1.5rem;
}
.timer {
width: 300px;
height: 300px;
border-radius: 50%;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
#timer {
font-size: 4rem;
margin-bottom: 1rem;
}
.buttons {
display: flex;
justify-content: space-around;
}
button {
width: 100px;
height: 40px;
font-size: 1rem;
background-color: #3f51b5;
color: #fff;
border: none;
border-radius: 10px;
cursor: pointer;
outline: none;
transition: 0.2s background-color ease-in-out;
}
button:hover {
background-color: #1a237e;
}
```
JavaScript:
```
const timerDisplay = document.querySelector('#timer');
const startButton = document.querySelector('#start');
const stopButton = document.querySelector('#stop');
let timerInterval;
startButton.addEventListener('click', startTimer);
stopButton.addEventListener('click', stopTimer);
function startTimer() {
let seconds = 0;
let minutes = 0;
let hours = 0;
timerInterval = setInterval(() => {
seconds++;
if (seconds === 60) {
seconds = 0;
minutes++;
}
if (minutes === 60) {
minutes = 0;
hours++;
}
const displaySeconds = seconds < 10 ? `0${seconds}` : seconds;
const displayMinutes = minutes < 10 ? `0${minutes}` : minutes;
const displayHours = hours < 10 ? `0${hours}` : hours;
timerDisplay.textContent = `${displayHours}:${displayMinutes}:${displaySeconds}`;
}, 1000);
}
function stopTimer() {
clearInterval(timerInterval);
const timerValue = timerDisplay.textContent;
const audio = new Audio('timer-done.mp3');
audio.play();
if (timerValue === '00:00:00') {
alert('え、まだ始まってないのに終わっちゃった?! 💥');
} else {
alert(`タイマーが ${timerValue} になりました! 🎉`);
}
}
```
このタイマーでは、スタートボタンをクリックすると、1秒ごとにタイマーがカウントアップされ、表示されます。ストップボタンをクリックすると、タイマーのカウントアップを止め、タイマーが停止したことを知らせるアラートが表示されます。また、タイマーが0になったときには、別のおもしろいアラートが表示されます。
なお、このタイマーには音声ファイルが必要です。音声ファイルは、プログラムのファイルと同じディレクトリに「timer-done.mp3」という名前で配置されている必要があります。音声なしの場合は、`audio`関数をコメントアウトしてください。