Logo Hpv 4 Learning
Academy
Web Agency
javascript

Come creare un sito completo con Javascript Html e CSS

By Hpv4Learning 2 min05/03/2022
"In questo progetto realizzeremo un'applicazione web completa, che permette di cercare il proprio cocktail preferito."
Cocktail Library

Troverai nel progetto

Che cosa realizzeremo in questo progetto ?

In questo progetto realizzeremo una pagina web che simula una sorta di enciclopedia dei cocktails, in cui sarà presente la possibilità di cercare il proprio cocktail preferito tramite una searchbar. Per ogni cocktail andremo a realizare una pagina dedicata che mostrerà il nome, l'immagine, la descrizione e gli ingredienti di ogni ricetta.

Andremo ad utilizzare una Api che si chiama TheCocktailDB

Fetch e display dei dati

Per quanto riguarda il fetch dei dati andremo ad utilizzare fetch con async/await, in modo da ottenere la risposta dal server. Fatto ciò, destruttureremo la risposta ottenuta, in modo da avere chiari i dati con cui lavoreremo.

Scriveremo anche una funzione che ci permettera, dopo aver selezionato i nodi dal DOM, di iniettare nella pagine le informazioni ottenute tramite la chiamata API. Per ottenere i nodi dal DOM andremo ad utilizzare una funzione apposita

const getElement = (selection) => {
  const element = document.querySelector(selection);
  if (element) return element;
  throw new Error("no element selected");
};

Gestione dei caricamenti

Nel nostro progetto avremo bisogno di mosyrare all'utente uno spinner che faccia capire che i dati da lui richiesti stanno venendo processati.

Per farlo scriveremo due banalissime funzioni che serviranno ad accedere alla classe css assegnata al nodo dello spinner, in modo da poterla aggiungere o rimuovere in base l caso d'uso.

import getElement from './getElement.js';

const loading = getElement('.loading');

export const showLoading = () => {
  loading.classList.remove('hide-loading');
};
export const hideLoading = () => {
  loading.classList.add('hide-loading');
};

Come funziona una barra di ricerca

Per realizzare la barra di ricerca, ci basterà ottenere il valore di input immesso all'interno della barra dall'utente, e passarlo alla funzione che ci permette di mostrare i drinks.

Per farlo ovviamanete avremo bisogno dei nodi del DOM riguardanti la barra di ricerca, e dell'url che ci viene fornito dall'api, il quale ci permette, passandogli come ultimo valore ciò che vogliamo cercare, di visualizzare solo i risultati inerenti alla ricerca dell'utente.

import get from './getElement.js';
import presentDrinks from './presentDrinks.js';

const baseURL = 'https://www.thecocktaildb.com/api/json/v1/1/search.php?s='

const form = getElement('.search-form');
const input = getElement('[name="drink"]');

form.addEventListener('keyup', function (e) {
  e.preventDefault();
  const value = input.value;
  if (!value) return;
  presentDrinks(`${baseURL}${value}`);
});

Dettaglio per ogni drink

Infine, andremo a creare una pagina in maniera dinamica per ogni drink. Dopo aver cercato il drink, sarà possibile cliccarci sopra per accedere alla pagina dedicata per quel singolo drink.

Per fare ciò dovremo scrivere una funzione che ci permette di ottenere e destrutturare le informazioni relative al singolo drink selezionato. Per farlo fetcheremo da un url specifico, che ci viene messo a disposizione dall'api stessa, al quale basterà passare in maniera dinamica l'id relaticvo al cocktail di cui vogliamo mostrare le informazioni.

Così come per il fetch, anche per il display dei singoli drinkm verrà scritta una funzione apposita, che selezionera dal DOM i nodi corretti ed inietterà in essi le informazioni.

Prossimo Progetto

Primo progetto Javascript: creare un contatore

Primo progetto Javascript: creare un contatore

Un contatore che aumenta o diminuisce ad ogni nostro click

javascript

Informazioni aggiuntive

Livello: Principiante

239 lezioni

25 ore di videocorso

11 Progetti pratici

558 studenti iscritti

Voto Medio:

4.5

Prezzo originale: 29.90€

Supporto Premium

text

Scopri il corso completo

Corso di Javascript e Typescript...


558

4.5

Copertina
Corso di Javascript e Types...