Maison > interface Web > js tutoriel > le corps du texte

#Mon premier développeur

Susan Sarandon
Libérer: 2024-11-07 12:55:03
original
948 Les gens l'ont consulté

#My first dev

J'ai déjà créé des sites Web personnels, mais je n'ai jamais relevé un défi d'une telle ampleur. Il a été mis en ligne aujourd'hui ; une application d'une page pour explorer le catalogue de ma nouvelle maison de disques ; intégrant Bandcamp mais en lui donnant une sensation plus de « fouille de caisse » en utilisant three.js pour la navigation dans l'album. C’est 4 500 lignes de code, une douzaine de modules JavaScript. Cela a pris une semaine. J'ai travaillé seul avec uniquement Claude.ai comme partenaire de codage. Je dois dire que c’est un outil remarquable mais non sans faiblesses.
Quoi qu’il en soit, j’aimerais que vous visitiez mon site et me disiez ce que vous en pensez. J'ai enregistré le code publiquement sur GitHub si vous souhaitez y accéder. Mais voici le site : Not the Final Vinyl

Claude voulait que j'ajoute quelques choses :

Plongée technique approfondie

Découvrez le code : NotTheFinalVinyl sur GitHub
Site en direct : notthefinalvinyl.net

L'Architecture ?️

Construit autour d'un système d'interaction de disque vinyle personnalisé utilisant Three.js, avec environ 4 500 lignes de JavaScript vanille réparties sur 12 modules clés :

// Example from VinylManager.js - Physics-based vinyl sliding
const animate = (timestamp) => {
    if (!startTime) startTime = timestamp;
    const elapsed = (timestamp - startTime) / this.slideOutDuration;

    if (elapsed < 1) {
        // Custom easing function for natural vinyl movement
        const progress = t < 0.5
            ? 4 * t * t * t
            : 1 - Math.pow(-2 * t + 2, 3) / 2;

        album.setVinylPosition(this.slideDistance * progress);
        requestAnimationFrame(animate);
    }
}
Copier après la connexion

Composants de base ?

  • SceneManager : configuration de Three.js et gestion de WebGL
  • VinylManager : Enregistrer les animations et l'état
  • EventHandler : interactions tactile/souris/clavier
  • InfoDisplay : intégration et interface utilisateur de Bandcamp
  • Albums : maillage vinyle 3D et gestion des textures

Défis techniques résolus ?

  1. Performances

    • Préchargement de texture
    • Système d'animation efficace
    • Ordre de rendu intelligent pour les vinyles superposés
  2. Assistance mobile

    • Gestes tactiles
    • Mise à l'échelle dynamique de la fenêtre
    • Optimisations du GPU mobile
  3. Intégration

    • Intégration iframe de Bandcamp
    • Détection du navigateur Facebook
    • Gestion des états entre composants

Points d'apprentissage ?

Comme mon premier grand projet JavaScript, j'ai appris :

  • Les fondamentaux de WebGL/Three.js
  • Minutage d'animation complexe
  • Modèles de gestion de l'État
  • Optimisation des performances
  • Développement axé sur le mobile

Projets futurs ?

  • Ajout d'effets de réflexion en vinyle
  • Plus de comportements interactifs
  • Améliorations des performances
  • Meilleure expérience mobile

À la recherche de commentaires sur :

  1. Organisation du code
  2. Bonnes pratiques Three.js
  3. Optimisations des performances
  4. Améliorations de l'UX mobile

Le parcours GitHub

Toujours en train d'apprendre les workflows Git - le dépôt reflète mon processus d'apprentissage ! N'hésitez pas à explorer et à suggérer des améliorations. Je suis particulièrement intéressé par les retours sur :

  • Structure du projet
  • Documentation
  • Bonnes pratiques Git
  • Approches de test

threejs #webgl #javascript #frontend #webdev #showdev #animation #ux

``

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal