Skip to content

pehaa/cours-alyra-gradients

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published