Git Product home page Git Product logo

cours-alyra-gradients's Introduction

Alyra Gradients

1. Insérer l'information

Voici une collection de ... dégradés prêts à utiliser dans vos feuilles de styles

// introEl <- element du dom avec l'id intro
// si introEl existe
//        introEl -> textContent  prend la valeur `Voici une collection de ${gradients.length} ...`

Et si on voulait afficher Voici une collection de <b>${gradients.length}</b> dégradés prêts à utiliser dans vos feuilles de styles ?

Méthodes à utiliser :

  • document.getElementbyId() ou document.querySelector()
  • el.textContent ou el.innerHTML

2. Le background de header utilise un des dégradés de l'array gradients.

Ceci change en click.

// headerEl <- element du dom avec l'id
function addRandomGradientBg() {
  // executer la suite si headerEl existe
  //     randomIndex <- un nombre aléatoire, valeur entre 0 -> gradients.length - 1
  //     randomGradient <- gradients[randomIndex]
  //     bgImage <- string qui mets en le dégradé en css
  //     headerEl -> style -> backgroundImage prends la valeurs de bgImage
}

addRandomGradientBg() // execute la fontion une fois quand le script charge
gradientBtn.addEventListener("click", addRandomGradientBg) // execute la fonction en click

Méthodes à utiliser :

  • el.addEventListener('click', () => {})
  • el.style.backgroundImage

3. Insérer la grille des dégradés dans la page

Nous allons créer avec JavaScript une structure html comme ceci :

<ul class="row list-unstyled">
  <li class="col-sm-6 col-md-4 col-lg-3">
    <div class="card p-3 mb-4 shadow">
      <div class="card-gradient rounded-pill mx-auto mb-4" style="..."></div>
      <h2 class="h5 text-center">...</h2>
      <code>...</code>
    </div>
  </li>
</ul>

les '...' doivent être remplacés par les valeurs dynamiques

// gridEl
function insertGradients() {
  // ulEl <- crée un élément du dom, avec le tag ul
  // parcours les gradients (for of)
  //     crée une structure pour le li
  //     attache li au ulEl
  // attache ulEl à la fin de gridEl
}

Méthodes à utiliser :

  • document.createElement()
  • el.classList.add('class1', 'class2', 'class3')
  • el.innerHTML
  • el.append(childEl)

4. Activer l'élément select

// tagFilter <- variable égale a tag par lequel on va filter
function activateFilterByTag() {
  // selectEl <- élément du dom avec l'id filtertags
  // tags <- liste des tags uniques dans l'order alphabétique
  // parcourir la liste des tags (for of)
  //    crée un élément option
  //    avec le texte qui est égal au tag
  //    avec la valeur de "value" égale au tag
  //    attache l'option à la fin de selectEl
  // selectEl devrait réagir à l'action de utilisateur qui choisi une nouvelle valeur (change)
  // affecter la value d'option choisi par utilisateur à tagFilter. On a accès à cette inforamtion via event.currentTarget.value
  // appelle insertGradients() pour réinserer les gradients
}

Méthodes à utiliser :

  • document.createElement()
  • el.textContent,
  • el.value,
  • el.append(childEl)
  • el.addEventListener('change', (event) => {})

5. Refactoring de la function insertGradients

function insertGradients() {
  // ulEl <- crée un élément du dom, avec le tag ul
  // filteredGradients <- gradients filtrés selon la valeur de tagFilter
  // parcours les filteredGradients  (for of)
  //     crée une structure pour le li
  //     attache li au ulEl
  // vide le gridEl
  // attache ulEl à la fin de gridEl
}

Méthodes à utiliser :

  • gradients.filter()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.