Heim > Web-Frontend > js-Tutorial > Hauptteil

So erstellen Sie eine erweiterbare Ultra-Premium-Navigationsleiste mit dynamischen Effekten und Auswahlindikator

Mary-Kate Olsen
Freigeben: 2024-11-17 22:55:02
Original
809 Leute haben es durchsucht

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

Einführung

Im heutigen Tutorial zeigen wir Ihnen, wie Sie eine erweiterbare Premium-Navigationsleiste mit elegantem Design, dynamischen Animationen und modernen Effekten erstellen. Diese erweiterte Navigationsleiste bietet Folgendes:

Ein animierter Partikelhintergrund für eine High-End-Ästhetik.
Leuchtende Symbole mit Hover-Effekten.
Ein dynamischer Auswahlindikator, der den aktiven Abschnitt hervorhebt.
Reibungslose Animationen und Übergänge für einen professionellen Look.
Diese mit HTML, CSS und JavaScript erstellte Navigationsleiste eignet sich perfekt für hochwertige Weboberflächen und verbessert das Benutzererlebnis, sodass sie eine hervorragende Ergänzung für jedes Projekt ist, einschließlich interaktiver Spiele wie Gladiators Battle. Lasst uns eintauchen!

Schritt 1: Einrichten der HTML-Struktur
Unsere erweiterbare Navigationsleiste verwendet Font Awesome-Symbole, eine Umschalttaste und benutzerdefinierte Daten-Tooltip-Attribute, um Beschreibungen für jedes Symbol bereitzustellen. Dieses Markup gibt uns eine flexible Struktur, auf der wir aufbauen können.

<!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;
}
Nach dem Login kopieren

Schaltfläche umschalten
Die Umschalttaste erweitert und reduziert die Navigationsleiste und bietet eine rotierende Animation beim Schweben.

.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);
}
Nach dem Login kopieren

Navigationselemente und Tooltip-Effekte
Jedes Navigationselement verfügt über einen Hover-Effekt mit einem Farbverlauf und einem leuchtenden Hintergrund. Tooltips werden mit einem weichen Schatteneffekt angezeigt, um den Benutzern Orientierung zu geben.

.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);
}
Nach dem Login kopieren

Auswahlanzeige und Benachrichtigungsabzeichen

.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;
}
Nach dem Login kopieren

Schritt 3: JavaScript für Interaktivität hinzufügen
JavaScript steuert den erweiterbaren Status der Navigationsleiste, das aktive Element und den Auswahlindikator. Außerdem bleibt die Anzeige bei der Größenänderung am ausgewählten Element ausgerichtet.

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);
  }
});
Nach dem Login kopieren

Fazit
Die Erstellung einer erstklassigen, erweiterbaren Navigationsleiste mit dynamischen Animationen und einer intuitiven Benutzeroberfläche wertet jedes Webprojekt auf. Mit CSS für Design und JavaScript für Interaktivität haben wir eine flexible Komponente erstellt, die sich perfekt für High-End-Anwendungen wie Gladiators Battle eignet. Die sanften Übergänge, leuchtenden Effekte und erweiterbaren Funktionen dieser Navigationsleiste sorgen für ein professionelles und modernes Benutzererlebnis.

? Entdecken Sie mehr:

Entdecken Sie Gladiators Battle: Tauchen Sie ein in die Welt der antiken Krieger und erleben Sie strategisches Gameplay unter https://gladiatorsbattle.com
Schauen Sie sich unseren GitHub an: Codebeispiele und Dokumentation finden Sie unter https://github.com/HanGPIErr/Gladiators-Battle-Documentation
Verbinden Sie sich auf LinkedIn: Folgen Sie mir unter https://www.linkedin.com/in/pierre-romain-lopez/
Folgen Sie auf X: Bleiben Sie über Design- und Gaming-Projekte auf dem Laufenden unter https://x.com/GladiatorsBT
Bleiben Sie dran für weitere Tutorials zum Erstellen von Premium-Webkomponenten mit HTML, CSS und JavaScript!

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine erweiterbare Ultra-Premium-Navigationsleiste mit dynamischen Effekten und Auswahlindikator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage