ドラムキット Web サイトを構築する

王林
リリース: 2024-08-15 06:03:02
オリジナル
247 人が閲覧しました

Build a Drum Kit Website

導入

開発者の皆さん、こんにちは!私の最新プロジェクトであるドラムキットを皆さんと共有できることを嬉しく思います。このプロジェクトは、特にユーザー入力とオーディオ再生の処理において JavaScript を練習するための楽しくてインタラクティブな方法です。 JavaScript を始めようとしている初心者でも、音楽とコーディングが好きな人でも、このプロジェクトはあなたにぴったりです。

プロジェクト概要

ドラムキットは、ドラムセットをシミュレートするインタラクティブな Web アプリケーションです。ユーザーはドラムボタンをクリックするか、キーボード上の対応するキーを押すことでサウンドを再生できます。このプロジェクトでは、イベント、オーディオ、CSS アニメーションを操作して、応答性が高く魅力的なユーザー エクスペリエンスを作成する方法を示します。

特徴

  • インタラクティブドラムボタン: クリック可能なボタンで、さまざまなドラムサウンドを再生します。
  • キーボードコントロール: 特定のキーを押してドラムサウンドをトリガーします。
  • 視覚的フィードバック: ボタンを押すとアニメーションが表示され、即座に視覚的なフィードバックが提供されます。
  • レスポンシブ デザイン: レイアウトはさまざまな画面サイズに合わせて調整され、デバイス間で一貫したエクスペリエンスが保証されます。

使用されている技術

  • HTML: ドラムキットインターフェースの構造を提供します。
  • CSS: ボタンのアニメーションや全体的なレイアウトなど、ドラムキットのスタイルを設定します。
  • JavaScript: ユーザー操作、サウンド再生、アニメーションを処理します。

プロジェクトの構造

プロジェクトの構造を簡単に見てみましょう:

Drum-Kit/
├── index.html
├── styles.css
└── index.js
ログイン後にコピー
  • index.html: ドラムキットの HTML 構造が含まれます。
  • styles.css: ドラムキットとアニメーションの CSS スタイルが含まれています。
  • index.js: ユーザー インタラクション、サウンド効果、アニメーションを管理します。

インストール

プロジェクトを開始するには、次の手順に従います:

  1. リポジトリのクローンを作成します:

    git clone https://github.com/abhishekgurjar-in/Drum-Kit.git
    
    ログイン後にコピー
  2. プロジェクト ディレクトリを開きます:

    cd Drum-Kit
    
    ログイン後にコピー
  3. プロジェクトを実行します:

    • Web ブラウザでindex.html ファイルを開いて、ドラムキットの動作を確認します。

使用法

  1. Web ブラウザで Web サイトを開きます
  2. ドラムボタンをクリックするか、対応するキーを押して (w、a、s、d、j、k、l) さまざまなドラムサウンドを再生します。
  3. ボタンを押したときのアニメーションを観察してください。視覚的なフィードバックが得られます。

コードの説明

HTML

index.html ファイルは、各ドラムサウンドのボタンやフッターなど、ドラムキットの構造を設定します。スニペットは次のとおりです:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8" />
    <title>Drum Kit</title>
    <link rel="stylesheet" href="styles.css" />
    <link href="https://fonts.googleapis.com/css?family=Arvo" rel="stylesheet" />
  </head>
  <body>
    <h1 id="title">Drum ? Kit</h1>
    <div class="set">
      <button class="w drum">w</button>
      <button class="a drum">a</button>
      <button class="s drum">s</button>
      <button class="d drum">d</button>
      <button class="j drum">j</button>
      <button class="k drum">k</button>
      <button class="l drum">l</button>
    </div>
    <script src="index.js" charset="utf-8"></script>
    <footer>Made with ❤️ by Abhishek Gurjar</footer>
  </body>
</html>
ログイン後にコピー

CSS

styles.css ファイルは、ドラムボタンやアニメーションなどのドラムキットのスタイルを設定します。以下に主なスタイルをいくつか示します:

body {
  text-align: center;
  background-color: #283149;
}

h1 {
  font-size: 5rem;
  color: #DBEDF3;
  font-family: "Arvo", cursive;
  text-shadow: 3px 0 #DA0463;
}

footer {
  color: #DBEDF3;
  font-family: sans-serif;
}

.w { background-image: url("images/tom1.png"); }
.a { background-image: url("images/tom2.png"); }
.s { background-image: url("images/tom3.png"); }
.d { background-image: url("images/tom4.png"); }
.j { background-image: url("images/snare.png"); }
.k { background-image: url("images/crash.png"); }
.l { background-image: url("images/kick.png"); }

.set {
  margin: 10% auto;
}

.pressed {
  box-shadow: 0 3px 4px 0 #DBEDF3;
  opacity: 0.5;
}

.drum {
  outline: none;
  border: 10px solid #404B69;
  font-size: 5rem;
  font-family: 'Arvo', cursive;
  line-height: 2;
  font-weight: 900;
  color: #DA0463;
  text-shadow: 3px 0 #DBEDF3;
  border-radius: 15px;
  display: inline-block;
  width: 150px;
  height: 150px;
  text-align: center;
  margin: 10px;
  background-color: white;
}
ログイン後にコピー

JavaScript

index.js ファイルは、サウンドの再生やボタンのアニメーションなどのドラムキットの機能を制御します。スニペットは次のとおりです:

const numberOfDrumButtons = document.querySelectorAll(".drum").length;

for (let i = 0; i < numberOfDrumButtons; i++) {
  document.querySelectorAll(".drum")[i].addEventListener("click", function () {
    const buttonInnerHTML = this.innerHTML;

    makeSound(buttonInnerHTML);
    buttonAnimation(buttonInnerHTML);
  });
}

document.addEventListener("keypress", function (event) {
  makeSound(event.key);
  buttonAnimation(event.key);
});

function makeSound(key) {
  switch (key) {
    case "w":
      const tom1 = new Audio("sounds/tom-1.mp3");
      tom1.play();
      break;
    case "a":
      const tom2 = new Audio("sounds/tom-2.mp3");
      tom2.play();
      break;
    case "s":
      const tom3 = new Audio("sounds/tom-3.mp3");
      tom3.play();
      break;
    case "d":
      const tom4 = new Audio("sounds/tom-4.mp3");
      tom4.play();
      break;
    case "j":
      const snare = new Audio("sounds/snare.mp3");
      snare.play();
      break;
    case "k":
      const crash = new Audio("sounds/crash.mp3");
      crash.play();
      break;
    case "l":
      const kick = new Audio("sounds/kick-bass.mp3");
      kick.play();
      break;
    default:
      console.log(key);
  }
}

function buttonAnimation(currentKey) {
  const activeButton = document.querySelector("." + currentKey);
  activeButton.classList.add("pressed");

  setTimeout(function () {
    activeButton.classList.remove("pressed");
  }, 100);
}
ログイン後にコピー

ライブデモ

ここでドラムキットのライブデモをチェックできます。

結論

このドラムキットの構築は、JavaScript のイベント処理とオーディオ機能を詳しく知ることができる素晴らしい経験でした。このプロジェクトが、インタラクティブな Web アプリケーションを試し、独自の楽しく魅力的なプロジェクトを作成するきっかけとなることを願っています。自由にコードを調べてカスタマイズし、独自の作業で使用してください。コーディングを楽しんでください!

クレジット

このプロジェクトは、インタラクティブな Web 要素を作成するための JavaScript の可能性を紹介するために作成されました。

著者

  • アビシェク・グルジャル
    • GitHub プロフィール

以上がドラムキット Web サイトを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート