Mod5 Jquery New 2023
Mod5 Jquery New 2023
Mod5 Jquery New 2023
DJE BI GABIN
1/23
Table des matières
JavaScript........................................................................................... 3
Lier un fichier JavaScript .................................................................................................... 3
JavaScript ou CSS3 ? ........................................................................................................... 3
Préparation de l’environnement .................................................... 3
Chargement de la bibliothèque ........................................................................................ 4
Inclusion de votre fichier .js personnel ............................................................................ 4
Coder en jQuery ................................................................................ 7
Fonctionnement ................................................................................................................. 7
Les méthodes ...................................................................................................................10
Les arguments ..................................................................................................................17
Les événements ...............................................................................................................17
Les variables .....................................................................................................................20
Intégrer des fonctionnalités ............................................................................................22
Ressources ........................................................................................................................22
2/23
JavaScript
Le langage JavaScript (différent de Java) est un langage de programmation utilisé
pour réaliser des pages Web dynamiques.
Il s’exécute le plus souvent coté client (navigateur) et s'insère dans le code HTML
soit directement, soit par inclusion d'un script externe.
JavaScript ou CSS3 ?
Nous avons vu que certaines propriétés CSS3 tendaient à remplacer l'utilisation de
JavaScript notamment avec les animations rendues possibles en CSS3.
Le débat est ouvert :
• L'avantage de JavaScript est d'être bien reconnu par tous les navigateurs, et
jQuery permet d'assurer une compatibilité maximale même pour les vieux
navigateurs.
• L'avantage de CSS3 est qu'il est plus facile à modifier à et n'a pas besoin d'être
chargé en plus (rapidité d'affichage). Cependant, les propriétés nouvelles ne
seront pas forcement bien implémentées dans tous les navigateurs.
Je pencherai donc pour dire : tout ce qui peut être fait en HTML5 et CSS3 doit
l'être, tant que la compatibilité avec les navigateurs est assurée. S'il y a des
problèmes de compatibilité ou si CSS3 trouve ses limites (gestion des événements :
click, chargement, scroll…) utiliser JavaScript.
Préparation de l’environnement
JQuery est une bibliothèque JavaScript, c’est à dire un ensemble de fonctions
JavaScript « prêtes à l’emploi » permettant de faciliter le développement de modules
JavaScript grâce à une syntaxe plus lisible (par les développeurs débutants) et plus
concise.
3/23
La compatibilité du code produit via jQuery est assurée sur tous les navigateurs (même
les anciennes versions d’internet explorer).
Dernier intérêt : vous trouverez sur internet beaucoup de modules construits en
jQuery que vous pourrez facilement adapter à votre site (slides, navigations, pop-
up…).
Chargement de la bibliothèque
Bibliothèque (fichier .js) chargée une seule fois dans votre fichier HTML, au choix :
+ Inclusion bibliothèque jQuery hébergée sur votre site (préférable en
développement local) : Récupérez la dernière version de jquery compressée, placée
dans un dossier « js ». Le fichier sera lié juste avant la fermeture de la balise </body>
<script type="text/javascript" src="js/jquery.min.js"></script>
+ Inclusion bibliothèque jQuery hébergée sur un CDN Google (préférable pour
un site en ligne) :
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></
script>
Exemple
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Installation de jQuery</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<!-- Contenu de la page -->
<script src="js/jquery-3.6.0.min.js"></script>
</body></html>
script.js doit contenir ce code (une seule fois, le code est développé à l'intérieur)
4/23
$(function() {
// Commencer à coder en jquery ici
});
Le D.O.M (arborescence du document) doit être chargé avant l’exécution des fonctions
jquery. Cette fonction assure cela en 1er lieu, elle doit donc encadrer
systématiquement tous les développements jquery (une seule fois).
Vous pourrez trouver la notation suivante, moins synthétique que celle ci-dessus mais
ayant le même effet :
$(document).ready(function() {
// Commencer à coder en jquery ici
});
Lorsque le document est chargé, lancer l’exécution du code entre accolades
5/23
1. Pour le développement de votre site, utilisez jQuery en local pour la rapidité
d'exécution.
2. Pour la production, passez par un CDN afin d'utiliser le cache de vos utilisateurs.
3. Placez vos scripts en fin de page, pour optimiser le chargement de la page.
4. Eviter les conflits de bibliothèques avec noConflict().
Activité
1- configurer votre ordinateur pour une utilisation de jQuery en local pour les
exercices du cours.
6/23
Le DOM
Le DOM ou Document Object Model est un standard du W3C qui définit l'arborescence
du document HTML. JQuery est utilisé pour manipuler le DOM en écriture et en
lecture. Prenons le cas où le DOM n'est pas encore totalement construit lors du
chargement de la page et que le script jQuery est exécuté ; les scripts produiront des
erreurs. Pour attendre que le DOM soit entièrement chargé et ainsi éviter des erreurs.
En JavaScript
document.addEventListener('DOMContentLoaded', function() {
// Ici le DOM est prêt
})
En jquery
Avec jQuery, nous utiliserons la méthode .ready() prévue à cet effet.
$(document).ready(function() {
// Ici le DOM est prêt
});
Ou simplement
$(function() {
// Ici le DOM est prêt
});
Coder en jQuery
Les variables
Lors de développement Javascript (et autres), vous aurez besoin de stocker des unités
d'informations pour les réutiliser plus tard (les tester, les modifier...). Cela peut être :
du texte (string), des nombres (number) ou un boléen (boolean).
Ces unités d'informations s'appellent des variables. Voici comment on affecte une
valeur à une variable, grâce au mot clé var suivi du nom de la variable (inventé) :
7/23
Fonctionnement de JQuery
Une fois ou plusieurs éléments HTML sélectionné $() - il se «transforme» en objet
jquery et vous pouvez lui appliquer toutes les .methodes (fonctions) incluant des
paramètres d'exécutions.
Sur le principe :
$(selecteur).methode(parametres);
Exemple :
<p id='demo1'>Ceci est un texte ciblé par jQuery</p>
$(function() {
$('#demo1').css('color', 'red');
});
Passe la couleur du texte en rouge (propriété CSS)
8/23
- Version Javascript
document.getElementsByClassName('box');
document.querySelector(''box')
- Version jQuery
$('.box');
Les sélecteurs
La sélection en jQuery se fait avec la syntaxe :
$('')
La syntaxe à ajouter à l'intérieur des simples (ou doubles) quotes reprend celle des
sélecteurs CSS3
Intéressant :
• Élément qui contient un mot: http://api.jquery.com/contains-selector/
<div>IUA Abidjan</div>
$( "div:contains(IUA)" ).css( "text-decoration", "underline" );
• Élément vide : https://api.jquery.com/empty-selector/
<table border="1">
<tr><td>TD #0</td><td></td></tr>
<tr><td>TD #2</td><td></td></tr>
<tr><td></td><td>TD#5</td></tr>
</table>
$( "td:empty" )
.text( "IUA" )
.css( "background", "rgb(255,220,200)" );
Les méthodes
Une fois la (les) balises HTML sélectionnées, nous allons la manipuler grâce aux
méthodes jQuery.
Nous avons vu précédemment 2 méthodes :
Syntaxe simple : la méthode « s'accroche » au sélecteur avec un point suit son nom
(html, css, animate, attr…) puis des parenthèses qui pourront contenir des
paramètres ou rester vides. Enfin un point virgule pour indiquer que l’instruction est
terminée.
Ce qui donne :
$('#titre-site').html();
Il est possible de chaîner les méthodes.
JQuery nous propose plusieurs méthodes pour manipuler le DOM. Avec ces
méthodes, nous pouvons supprimer, créer, cloner, ajouter… Bref nous pouvons
remodeler le DOM à notre convenance.
Méthode Description
.addClass() Ajoute un ou plusieurs noms de classe à des éléments sélectionnés
.after() Insére le contenu après les éléments sélectionnés
.append() Insére le contenu à la fin les éléments sélectionnés
.appendTo() Insére le contenu sélectionné à la fin les éléments sélectionnés
.attr() Définit ou retourne les attributs / valeurs des éléments sélectionnés
.before() Insére le contenu avant les éléments sélectionnés
.clone() Effectue une copie des éléments sélectionnés
.css() Définit ou retourne une ou plusieurs propriétés de style pour les
éléments sélectionnés
.detach() Supprime les éléments sélectionnés (conserve les données et les
événements)
.empty() Supprime tous les nœuds enfants et le contenu de l'élément
sélectionné
.hasClass() Vérifie si l'un des éléments sélectionnés ont un nom de classe
spécifié
.height() Définit ou retourne la hauteur des éléments sélectionnés .html()
Définit ou retourne le contenu des éléments sélectionnés
.innerHeight() Renvoie la hauteur d'un élément (y compris le padding, mais pas
les border)
.innerWidth() Renvoie la largeur d'un élément (y compris le padding, mais pas
les border)
.insertAfter() Insère des éléments HTML après les éléments sélectionnés
.insertBefore() Insère des éléments HTML avant les éléments sélectionnés
.offset() Définit ou retourne les coordonnées de l'offset (left et top) pour les
éléments sélectionnés (en position relative dans le document)
.offsetParent() Retourne l'élément le premier parent positionné
.outerHeight() Renvoie la hauteur d'un élément (y compris le padding et les
border)
.outerWidth() Renvoie la largeur d'un élément (y compris le padding et les
border)
11/23
.position() Renvoie la position (par rapport à l'élément parent) d'un élément
.prepend() Introduire le contenu au début des éléments sélectionnés
.prependTo() Insére des éléments de HTML au début des éléments sélectionnés
au format html
.prop() Définit ou retourne propriétés / valeurs des éléments sélectionnés
.remove() Supprime les éléments sélectionnés (y compris des données et des
événements)
.removeAttr() Supprime un ou plusieurs attributs à partir d'éléments sélectionnés
.removeClass() Supprime une ou plusieurs classes à partir d'éléments sélectionnés
.removeProp() Supprime une propriété définie par la méthode prop()
.replaceAll() Remplace les éléments sélectionnés avec de nouveaux éléments
HTML
.replaceWith() Remplace les éléments sélectionnés par un nouveau contenu
.scrollLeft() Définit ou retourne la position de la barre de défilement
horizontale des éléments sélectionnés
.scrollTop() Définit ou retourne la position de la barre de défilement vertical
des éléments sélectionnés
.text() Insère des éléments de HTML au début des éléments sélectionnés
au format texte
.toggleClass() Bascule entre l'ajout / suppression d'une ou plusieurs classes à
partir d'éléments sélectionnés
.unwrap() Supprime l'élément parent des éléments sélectionnés
.val() Définit ou retourne la value des éléments sélectionnés (pour les
éléments de formulaire)
.width() Définit ou retourne la largeur des éléments sélectionnés
.wrap() Entoure d'un balisage HTML l'élément sélectionné
.wrapAll() Entoure d'un balisage HTML tous les éléments sélectionnés
.wrapInner() Entoure d'un balisage HTML le contenu de l'élément sélectionné
Manipuler le texte
Dans cette partie, nous verrons les méthodes .text() , .html() et .val() .
1- La méthode .text() récupère ou remplace le contenu en texte brut sans prendre en
compte les balises HTML.
Exemple
<div class="box">Je suis étudiant </div>
12/23
$('.box').text(‘Je suis informaticien');
Résultat
<div class="box"> Je suis informaticien</div>
Exemple
<div class="box"> Je suis étudiant </div>
$('.box').html('<h1> Je suis informaticien </h1>');
Résultat
<div class="box">
<h1> Je suis informaticien </h1>
</div>
$('#uncheckTheCB').on('click', function() {
$('#cb').prop('checked', false);
alert( $(‘#cb’).val(‘"someValue") ;
});
Supprimer du contenu
Dans cette partie, nous verrons les méthodes .remove() et .empty()
1- Méthode .remove()
La méthode.remove() supprime du DOM l'élément sélectionné
Exemple
<div id="main">
<div class="other">Je suis ingénieur informaticien</div>
<div class="box">Je suis magicien</div>
</div>
$('.box').remove();
Résultat
<div id="main">
<div class="other">Je suis ingénieur informaticien</div>
</div>
2- Méthode .empty()
14/23
La méthode .empty() vide le contenu de l'élément sélectionné.
Exemple
<div id="main">
<div class="other">Je suis ingénieur informaticien</div>
<div class="box">Je suis magicien</div>
</div>
('.box').empty();
Résultat
<div id="main">
<div class="other">Je suis ingénieur informaticien</div>
<div class="box"></div>
</div>
Manipuler le CSS
Méthode .addClass()
La méthode .addClass() permet d'ajouter une classe sur l'élément sélectionné.
<div class="box">…</div>
Exemple
$('.box').addClass('pod');
Résultat
<div class="box pod product">…</div>
Méthode .removeClass()
La méthode .removeClass() permet de supprimer une classe sur l'élément sélectionné.
Exemple
<div class="box pod">…</div>
$('.box').removeClass();
Résultat
<div>…</div>
Méthode .toggleClass()
La méthode .toggleClass() permet d'ajouter une classe sur l'élément selectionné si elle
n'est pas présente et inversement.
Exemple
15/23
$('#a').click(function(){
$('#b').toggleClass('bg-success');
});
Méthode .css()
La méthode .css() affecte les styles CSS à l'élément sélectionné.
Elle agit aussi comme un getter et permet donc d'obtenir la chaîne de caractères de la
valeur CSS demandée.
Exemple
<div class="box">…</div>
$('.box').css('background-color','red');
Résultat
<div class="box" style="background-color: red;">…
Nous pouvons bien sûr ajouter plusieurs styles CSS en même temps sous forme d'un
objet avec des paramètres.
$('.box').css({
'background-color':'red',
'font-size':'20px',
'color':'yellow'
});
Résultat
<div class="box" style="font-size:20px;color:yellow;background-
color:red;">…</div>
Les arguments
Indiqué entre parenthèses de la méthode= selon quels paramètres va s’exécuter
l'action ?
Ils sont séparés entre eux par une virgule. Une méthode peut être écrite sans
paramètres, dans ce cas on écrit quand même les parenthèses.
Voici la syntaxe pour passer plusieurs couples clé/valeur à un argument. Par exemple
ici plusieurs propriétés CSS :
$('#titre-site').css({
'color':'red',
'font-size':'2rem'
});
Les événements
Méthode permettent de déclencher une action (lancer d'autres méthodes) : au click sur
un bouton, au survol d'une image, lorsque la molette de la souris est tournée, au clic
droit, au chargement de la page...
17/23
Effectuer une tâche au chargement d'une page.
// Quand le DOM est prêt, nous appelons tous nos scripts
$(document).ready(function() {
// Ici le DOM est prêt, appelons nos scripts
});
Cette fonction utilise avec la méthode .ready() qui écoute le chargement de la page.
L'écoute d'événements consiste à attacher une action à remplir à un élément pour
déclencher une fonction que nous appellerons écouteur d'événement.
Méthode .on()
JQuery
$('.voir').click(function () {
$('#demo').css('border', '1px solid #ccc'); });
Au .click sur le bouton ayant la class=''voir'', je lance une fonction (événement) qui
va ajouter (en css) à la div ayant l'id=''demo2'' une bordure grise.
Une autre façon d’écrire l’instruction ci-dessus (à privilégier car plus moderne et
optimisée) :
$('.voir').on('click', function () {
$('#demo').css('border', '1px solid #ccc'); });
Dans les exemples ci-dessus il y a 2 éléments : le bouton qui est cliqué et la div sur
laquelle s’effectue l’action (ajout d’une bordure en css). Dans le cas ou l’action
s’effectue sur l’élément cliqué, la syntaxe sera la suivante :
$('#demo').click(function () {
$(this).css('border', '1px solid #ccc'); });
Il n’y a pas de bouton dans ce cas. Au clic sur l’élément #demo, celui-ci prend une
bordure.
19/23
Événement Description
Événement Description
La propagation d'événements
JQuery
$("li").click(function(){
alert($(this).html());
});
Éviter la propagation
21/23
Dans certains cas, la propagation est problématique. Heureusement jQuery propose
deux moyens de les éviter.
event.stopPropagation()
event.stopPropagation() empêche l'évènement de se propager dans l'arbre DOM en
évitant le bouillonnement. Dans l'exemple ci-dessous, le message d'alerte n'apparaît
qu'une fois.
jQuery
$("li").click(function(e){
event.stopPropagation();
alert($(this).html());
});
return false
Jquery
$("#totop").click(function(){
alert($(this).html());
return false ;
});
-Plugins
Intégrer des fonctionnalités
On va ainsi pouvoir, avec de bonnes bases en HTML et CSS adapter rapidement des
scripts réalisés par d'autres et mis en ligne gratuitement sur le WEB.
Ressources
Quelques exemples :
22/23
• Mediabox
http://fancyapps.com/fancybox/3/
• Slides
https://kenwheeler.github.io/slick/
• Parallax
https://freefrontend.com/jquery-parallax/
• Effets au scroll
https://freefrontend.com/jquery-scroll-effects/
• Divers
https://1stwebdesigner.com/the-best-jquery-plugins
• Divers
https://speckyboy.com/free-jquery-plugins/
23/23