ホームページ  >  記事  >  ウェブフロントエンド  >  ダイナミックエフェクトと選択インジケーターを備えたウルトラプレミアム拡張可能なナビゲーションバーを作成する方法

ダイナミックエフェクトと選択インジケーターを備えたウルトラプレミアム拡張可能なナビゲーションバーを作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-17 22:55:02813ブラウズ

How to Create an Ultra Premium Expandable Navbar with Dynamic Effects and Selection Indicator

はじめに

今日のチュートリアルでは、洗練されたデザイン、ダイナミックなアニメーション、最新のエフェクトを備えた、超プレミアムで拡張可能なナビゲーションバーの作成について説明します。この高度なナビゲーション バーの機能:

ハイエンドの美しさのためのアニメーション化されたパーティクル背景。
ホバー効果のある光るアイコン。
アクティブなセクションを強調表示する動的選択インジケーター。
スムーズなアニメーションとトランジションでプロフェッショナルな外観を実現します。
HTML、CSS、JavaScript で構築されたこのナビゲーションバーは、高品質の Web インターフェイスに最適で、ユーザー エクスペリエンスを向上させるため、Gladiators Battle のようなインタラクティブ ゲームを含むあらゆるプロジェクトへの優れた追加となります。飛び込んでみましょう!

ステップ 1: HTML 構造のセットアップ
拡張可能なナビゲーションバーは、Font Awesome アイコン、トグル ボタン、およびカスタム データ ツールチップ属性を使用して、各アイコンの説明を提供します。このマークアップにより、柔軟な構造を構築できるようになります。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Expandable Premium Navbar</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
  <link rel="stylesheet" href="styles.css">
</head>
<body>

  <!-- Particle Background -->
  <div>



<p>Key HTML Elements<br>
Particle Background: Provides a subtle, animated effect behind the navbar for a high-end look.<br>
Toggle Button: Allows users to expand or collapse the navbar.<br>
Nav Items: Each item includes a tooltip, an icon, and some have notification badges.<br>
Selection Indicator: Highlights the active section with a glowing effect.<br>
Step 2: Styling the Navbar with CSS<br>
Our CSS will focus on creating a luxurious, modern design with animated background particles, hover effects, and tooltip displays. Let’s go through each part.</p>

<p>Base Styles and Background Setup<br>
</p>

<pre class="brush:php;toolbar:false">body {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  margin: 0;
  background: radial-gradient(circle, #1b1b2f, #121212);
  font-family: Arial, sans-serif;
  overflow: hidden;
  position: relative;
}

/* Particle Background */
#particle-background {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: url('https://www.transparenttextures.com/patterns/dark-matter.png');
  animation: particleAnimation 30s linear infinite;
  opacity: 0.3;
}

@keyframes particleAnimation {
  0% { background-position: 0 0; }
  100% { background-position: 1000px 1000px; }
}
Navbar Styling
The navbar includes a semi-transparent background with a subtle blur effect to achieve a glassy look, which expands and collapses smoothly.

css
Copier le code
.navbar {
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  padding: 15px;
  border-radius: 40px;
  backdrop-filter: blur(15px);
  box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.6);
  transition: width 0.4s ease, padding 0.4s ease;
  gap: 15px;
  width: 60px;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.navbar.expanded {
  width: 360px;
  padding: 15px 20px;
  justify-content: flex-start;
}

トグルボタン
トグル ボタンはナビゲーション バーを展開したり折りたたんだり、ホバー時の回転アニメーションを備えています。

.toggle-button {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #ffffff;
  cursor: pointer;
  transition: transform 0.3s ease, color 0.3s ease;
}

.toggle-button:hover {
  color: #ff00cc;
  transform: rotate(90deg);
}

ナビゲーション項目とツールチップ効果
各ナビゲーション項目には、グラデーションと背景が光るホバー効果があります。ツールチップはユーザーをガイドするためにソフト シャドウ効果とともに表示されます。

.nav-item {
  position: relative;
  padding: 12px;
  font-size: 24px;
  color: #ffffff;
  cursor: pointer;
  border-radius: 15px;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
}

.nav-item:hover {
  background: linear-gradient(135deg, rgba(255, 0, 204, 0.4), rgba(51, 51, 255, 0.4));
  transform: translateY(-5px) scale(1.05);
}

.nav-item::before {
  content: attr(data-tooltip);
  position: absolute;
  bottom: -45px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 12px;
  color: #ffffff;
  background: rgba(30, 30, 30, 0.85);
  padding: 8px 12px;
  border-radius: 8px;
  opacity: 0;
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
  backdrop-filter: blur(8px);
}

.nav-item:hover::before {
  opacity: 1;
  transform: translateY(-8px);
}

選択インジケーターと通知バッジ

.selection-indicator {
  position: absolute;
  bottom: 10px;
  height: 4px;
  width: 30px;
  background: linear-gradient(90deg, #ff00cc, #3333ff);
  border-radius: 2px;
  transition: transform 0.3s ease, width 0.3s ease;
  z-index: -1;
}

/* Notification Badge */
.notification-badge {
  position: absolute;
  top: 5px;
  right: 5px;
  background: linear-gradient(45deg, #ff0000, #ff4d4d);
  color: #ffffff;
  border-radius: 50%;
  padding: 4px 7px;
  font-size: 12px;
  font-weight: bold;
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);
  animation: pulse 1.8s infinite ease-in-out;
}

ステップ 3: インタラクティブ性のために JavaScript を追加する
JavaScript は、ナビゲーションバーの展開可能な状態、アクティブな項目、選択インジケーターを制御します。また、サイズ変更時にインジケーターが選択された項目に合わせて配置されます。

const toggleButton = document.querySelector('.toggle-button');
const navbar = document.querySelector('.navbar');
const navItems = document.querySelectorAll('.nav-item');
const selectionIndicator = document.querySelector('.selection-indicator');

// Toggle the expanded state of the navbar
toggleButton.addEventListener('click', () => {
  navbar.classList.toggle('expanded');
  toggleButton.querySelector('i').classList.toggle('fa-bars');
  toggleButton.querySelector('i').classList.toggle('fa-times');
});

// Update selection indicator position
function updateSelectionIndicator(activeItem) {
  const itemRect = activeItem.getBoundingClientRect();
  const navbarRect = navbar.getBoundingClientRect();
  const offsetX = itemRect.left - navbarRect.left + navbar.scrollLeft;
  selectionIndicator.style.transform = `translateX(${offsetX}px)`;
  selectionIndicator.style.width = `${itemRect.width}px`;
}

// Handle nav item selection
navItems.forEach((item) => {
  item.addEventListener('click', () => {
    navItems.forEach(nav => nav.classList.remove('active'));
    item.classList.add('active');
    updateSelectionIndicator(item);
  });
});

// Initialize the position of the selection indicator on page load
document.addEventListener('DOMContentLoaded', () => {
  const activeItem = document.querySelector('.nav-item.active');
  if (activeItem) {
    updateSelectionIndicator(activeItem);
  }
});

結論
ダイナミックなアニメーションと直感的なインターフェイスを備えたプレミアムで拡張可能なナビゲーションバーを作成すると、あらゆる Web プロジェクトが向上します。デザインには CSS、対話性には JavaScript を使用して、Gladiators Battle のようなハイエンド アプリケーションに最適な柔軟なコンポーネントを構築しました。このナビゲーションバーのスムーズな遷移、光る効果、拡張可能な機能により、プロフェッショナルでモダンなユーザー エクスペリエンスが提供されます。

?さらに発見:

剣闘士の戦いを探索する: 古代の戦士の世界に飛び込み、https://gladiatorsbattle.com で戦略的なゲームプレイを体験してください
GitHub をチェックしてください: https://github.com/HanGPIErr/Gladiators-Battle-Documentation
でコード例とドキュメントをご覧ください。 LinkedIn で接続: https://www.linkedin.com/in/pierre-romain-lopez/
でフォローしてください。 X をフォロー: https://x.com/GladiatorsBT
でデザインとゲーム プロジェクトの最新情報を入手してください HTML、CSS、JavaScript を使用したプレミアム Web コンポーネントの作成に関するさらなるチュートリアルにご期待ください!

以上がダイナミックエフェクトと選択インジケーターを備えたウルトラプレミアム拡張可能なナビゲーションバーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。