Manipulations de base avec jQuery jquery03

Cet exercice consiste à essayer certaines fonctionnalités de jQuery permettant de manipuler des éléments du DOM.

Consignes de l’exercice

Mise en place de l’exercice

Créez, à l’emplacement de votre choix, un dossier racine vous permettant de stocker la totalité des fichiers de l’exercice.

Créez le fichier base_jquery_01.html avec le contenu suivant :

<!DOCTYPE html>
<html>
    <head>
        <title>Exemples avec jQuery</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Fondus</h1>
        
        <h2>Masquer</h2>
        <p>Paragraphe 1 : Lorem ipsum dolor sit amet, consectetur  
            quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non 
            eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi 
            porttitor ex at posuere maximus. Suspendisse potenti. Phasellus 
            consequat, nulla quis posuere sagittis, tellus velit commodo elit, 
            sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla 
            auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, 
            blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget 
            metus vel gravida. Praesent elementum viverra dolor. </p>
        
		
        <h2>Afficher</h2>
        <p>Paragraphe 2 : Lorem ipsum dolor sit amet, consectetur 
            quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non 
            eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi 
            porttitor ex at posuere maximus. Suspendisse potenti. Phasellus 
            consequat, nulla quis posuere sagittis, tellus velit commodo elit, 
            sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla 
            auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, 
            blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget 
            metus vel gravida. Praesent elementum viverra dolor. </p>
        
		
        <h2>Alterner</h2>
        <p>Paragraphe 3 : Lorem ipsum dolor sit amet, consectetur 
            quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non 
            eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi 
            porttitor ex at posuere maximus. Suspendisse potenti. Phasellus 
            consequat, nulla quis posuere sagittis, tellus velit commodo elit, 
            sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla 
            auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, 
            blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget 
            metus vel gravida. Praesent elementum viverra dolor. </p>
    </body>
</html>

Intégrez la bibliothèque jQuery à votre fichier base_jquery_01.html. Vous pouvez la télécharger ou l’intégrer via un CDN.

Solution HTML :
<!DOCTYPE html>
<html>
    <head>
        <title>Exemples avec jQuery</title>
        <meta charset="UTF-8">
        <script src="https://code.jquery.com/jquery-3.3.1.min.js"
            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
            crossorigin="anonymous"></script>
    </head>

Créez un fichier javascript vierge intitulé base_jquery_scripts.js dans votre dossier racine et liez ce fichier à votre page base_jquery_01.html.

Ce fichier doit être chargé après la bibliothèque jQuery.

Solution HTML :
<!DOCTYPE html>
<html>
    <head>
        <title>Exemples avec jQuery</title>
        <meta charset="UTF-8">
        <script src="https://code.jquery.com/jquery-3.3.1.min.js"
            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
            crossorigin="anonymous"></script>
        <script src="base_jquery_scripts.js" type="text/javascript"></script>
    </head>

Effet de fondu

HTML : Directement en dessous du premier titre <h2>, ajoutez un bouton html sur lequel vous ajoutez l’id fondu-masquer-btn.

<p><button id="fondu-masquer-btn">Masquer</button></p>

HTML : Ajoutez l’id fondu-masquer-content sur le paragraphe juste en dessous.

JS : Préparez le fichier base_jquery_scripts.js avec le code jQuery adapté pour attendre que le DOM soit disponible.

Ressource : https://api.jquery.com/ready/

Solution javascript :
$(document).ready(function() {
	
    // Le reste du code javascript sera ici !
	
});

JS : Préparez un écouteur pour surveiller les clics sur le bouton fondu-masquer-btn.

Ressource : https://api.jquery.com/click/

Solution javascript :
$(document).ready(function() {
    $("#fondu-masquer-btn").click(function (){
		
    });
});

JS : Ajoutez une action permettant de masquer le paragraphe fondu-masquer-content avec un effet de fondu dès qu’un clique est détecté sur le bouton fondu-masquer-btn.

Ressource : https://api.jquery.com/fadeOut/

Solution :
$(document).ready(function() {
    $("#fondu-masquer-btn").click(function (){
        $("#fondu-masquer-content").fadeOut();
    });
});

HTML : Directement en dessous du second titre <h2>, ajoutez un deuxième bouton html sur lequel vous ajoutez l’id fondu-afficher-btn.

HTML : Ajoutez l’id fondu-afficher-content sur le paragraphe juste en dessous. Puis masquez le paragraphe avec la propriété CSS adaptée (via une feuille de style externe/interne ou un style inline).

Solution HTML :
<p id="fondu-masquer-content" style="display:none;">Lorem ipsum dolor sit amet, consectetur adipiscing quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi porttitor ex at posuere maximus. Suspendisse potenti. Phasellus consequat, nulla quis posuere sagittis, tellus velit commodo elit, sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget metus vel gravida. Praesent elementum viverra dolor. </p>

JS : Faites en sorte de pouvoir afficher le paragraphe fondu-afficher-content suite à un clic sur le bouton fondu-afficher-btn.

Solution :
$("#fondu-afficher-btn").click(function (){
    $("#fondu-masquer-content").fadeIn();
});

HTML : En dessous du troisième titre de niveau 2, ajoutez un dernier bouton permettant de masquer et d’afficher en alternance le paragraphe suivant.

https://api.jquery.com/fadeToggle

Solution :
$("#fondu-alterner-btn").click(function (){
    $("#fondu-masquer-content").fadeToggle();
});

Effet de glissement

HTML : Dupliquez le fichier base_jquery_01.html et enregistrez la copie sous le nom base_jquery_02.html.

JS : Créez des écouteurs pour les trois boutons afin d’afficher/masquer les mêmes éléments que précédemment mais cette fois-ci en utilisant un effet de glissement. Pensez bien à adapter tous les id que vous avez appliqués précédemment.

Ressource : https://api.jquery.com/slideDown/

Solution :
$('#glissement-masquer-btn').click(function () {
    $('#glissement-masquer-contenu').slideUp();
});
$('#glissement-afficher-btn').click(function () {
    $('#glissement-afficher-contenu').slideDown();
});
$('#glissement-alterner-btn').click(function () {
    $('#glissement-alterner-contenu').slideToggle();
});

Manipulation de propriétés CSS

Créez le fichier base_jquery_03.html avec le contenu suivant :

<!DOCTYPE html>
<html>
    <head>
        <title>Exemples avec jQuery</title>
        <meta charset="UTF-8">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script src="base_jquery_scripts.js" type="text/javascript"></script>
        <link rel="stylesheet" href="base_jquery_style.css" type="text/css">
    </head>
    <body>
        <h1>jQuery</h1>
        
        <h2>Changer la largeur</h2>
        <p>
            <button id="css-width-btn1">Largeur 50%</button>
            <button id="css-width-btn2">Largeur 100%</button>
        </p>
        <p id="css-width" class="couleur">Lorem ipsum dolor sit amet, consectetur  
            quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non 
            eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi 
            porttitor ex at posuere maximus. Suspendisse potenti. Phasellus 
            consequat, nulla quis posuere sagittis, tellus velit commodo elit, 
            sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla 
            auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, 
            blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget 
            metus vel gravida. Praesent elementum viverra dolor.</p>
        
        <h2>Changer la couleur</h2>
        <p>
            <button id="css-couleur-btn1">Couleur 2</button>
            <button id="css-couleur-btn2">Couleur originale</button>
            <button id="css-couleur-btn3">Afficher le code couleur</button>
            <button id="css-couleur-btn4">Alterner la couleur</button>
        </p>
        <p id="css-couleur" class="couleur">Lorem ipsum dolor sit amet, consectetur  
            quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non 
            eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi 
            porttitor ex at posuere maximus. Suspendisse potenti. Phasellus 
            consequat, nulla quis posuere sagittis, tellus velit commodo elit, 
            sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla 
            auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, 
            blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget 
            metus vel gravida. Praesent elementum viverra dolor.</p>
        
        <h2>Modifier une classe</h2>
        <p>
            <button id="css-classe-btn1">Supprimer classe</button>
            <button id="css-classe-btn2">Remettre classe</button>
            <button id="css-classe-btn3">Changer classe</button>
        </p>
        <p id="css-classe" class="couleur-2">Lorem ipsum dolor sit amet, consectetur  
            quam at dictum mattis, dui felis faucibus dui, ut finibus quam sem non 
            eros. Ut tempor lacus lectus, ut egestas mi convallis eget. Morbi 
            porttitor ex at posuere maximus. Suspendisse potenti. Phasellus 
            consequat, nulla quis posuere sagittis, tellus velit commodo elit, 
            sit amet accumsan felis augue sit amet sapien. Suspendisse fringilla 
            auctor elit, id vehicula lorem tincidunt sit amet. Nulla sem turpis, 
            blandit eu arcu ac, facilisis faucibus sapien. Maecenas auctor eget 
            metus vel gravida. Praesent elementum viverra dolor.</p>
        
    </body>
</html>

Créez le fichier base_jquery_03.css avec le contenu suivant :

.couleur {
    background-color: #7fe0c9 ;
}

.couleur-2 {
    background-color: #c897fe ;
    border: 3px solid #6200fe ;
    padding: 10px;
    border-radius: 5px;
    color: #fff;
}

.couleur-3 {
    background-color: #f7cc8c ;
    border: 0px solid #93754b ;
    border-left-width: 10px;
    padding: 15px;  
    width: 90%;
    margin:auto;
    text-transform: uppercase;
}

JS : Ajoutez un écouteur pour surveiller les clics sur le bouton avec l’id css-width-btn1.

Solution :
$('#css-width-btn1').click(function(){
    // à faire en cas de click
});

JS : Sur l’écouteur créé à la question précédente, ajoutez une action permettant de changer la largeur du paragraphe css-width pour la passer à 50%.

Ressource : https://api.jquery.com/css/

Solution :
$('#css-width-btn1').click(function () {
    $('#css-width').css('width','50%');
});

JS : Faites en sorte que le paragraphe retrouve sa taille normale suite à un clique sur le bouton avec l’id css-width-btn2.

Solution :
$('#css-width-btn2').click(function () {
    $('#css-width').css('width','100%');
});

JS : Créez le code permettant de changer la couleur du paragraphe css-couleur lorsque l’on clique sur le bouton css-couleur-btn1.

Solution :
$('#css-couleur-btn1').click(function () {
    $('#css-couleur').css('background-color','#ffeea7');
});

JS : Créez le code permettant remettre la couleur initiale du paragraphe css-couleur lorsque l’on clique sur le bouton css-couleur-btn2.

Solution :
$('#css-couleur-btn2').click(function () {
    $('#css-couleur').css('background-color','#7fe0c9');
});

JS : Créez le code permettant de récupérer la couleur du paragraphe css-couleur et de l’afficher dans un message alert() lorsque l’on clique sur le bouton css-couleur-btn3.

Solution :
$('#css-couleur-btn3').click(function () {
    var color = $('#css-couleur').css('background-color');
    alert('Le code couleur est : '+color);
});

JS : Créez le code permettant d’alterner entre les deux couleurs lorsque l’on clique sur le bouton css-couleur-btn4.

Procédure :
  1. Notez les codes rgb() des deux couleurs.
  2. Créez une variable qui contient le nom de la couleur du paragraphe css-couleur.
  3. Via une conditionnelle, comparez cette variable avec la couleur d’origine et créez un seconde variable avec l’autre couleur.
  4. Appliquez la seconde couleur à l’élément html.
Solution :
$('#css-couleur-btn4').click(function () {
    var color = $('#css-couleur').css('background-color');
    if(color == "rgb(127, 224, 201)"){ 
        var newcolor = "rgb(255, 238, 167)" ;
    } else {
        var newcolor = "rgb(127, 224, 201)" ;
    }
    $('#css-couleur').css('background-color',newcolor);
});

Une autre approche consisterai à gérer la couleur avec des classes et à alterner les classes.

JS : Créez le code permettant de supprimer la classe css du paragraphe css-classe lorsque l’on clique sur le bouton css-classe-btn1.

Ressource : https://api.jquery.com/removeclass/

Solution :
$('#css-classe-btn1').click(function () {
    $('#css-classe').removeClass();
});

JS : Créez le code permettant de remettre la classe couleur-2 sur le paragraphe css-classe lorsque l’on clique sur le bouton css-classe-btn2.

Solution :
$('#css-classe-btn2').click(function () {
    $('#css-classe').addClass('couleur-2');
});

JS : Créez le code permettant d’enlever la classe du paragraphe css-classe pour la remplacer par la classe couleur-3 lorsque l’on clique sur le bouton css-classe-btn3.

Solution :
$('#css-classe-btn3').click(function () {
    $('#css-classe').removeClass().addClass('couleur-3');
});

Manipulation de contenu

Créez le fichier base_jquery_04.html avec le contenu suivant :

<!DOCTYPE html>
<html>
    <head>
        <title>Exemples avec jQuery</title>
        <meta charset="UTF-8">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script src="base_jquery_scripts.js" type="text/javascript"></script>
    </head>
    <body>
        <h1>jQuery</h1>
        
        <h2>Manipuler du contenu</h2>
        <p>
            <button id="contenu-btn1">Hola</button>
            <button id="contenu-btn2">Hello</button>
            <button id="contenu-btn3">Alert()</button>
            <button id="contenu-btn4">+ Bonjour</button>
        </p>
        <p id="contenu">Hello world</p>
        
    </body>
</html>

JS : Créez le code permettant de remplacer le contenu du paragraphe contenu par le texte « Hola mundo » lorsque l’on clique sur le bouton contenu-btn1.

Ressource : https://api.jquery.com/html/

Solution :
$('#contenu-btn1').click(function () {
    $('#contenu').html('Hola mundo');
});

JS : Créez le code permettant de remettre le contenu initial du paragraphe contenu lorsque l’on clique sur le bouton contenu-btn2.

Solution :
$('#contenu-btn2').click(function () {
    $('#contenu').html('Hello world');
});

JS : Créez le code permettant de récupérer le contenu du paragraphe contenu pour l’afficher dans un message d’alerte lorsque l’on clique sur le bouton contenu-btn3.

Solution :
$('#contenu-btn3').click(function () {
    var content = $('#contenu').html();
    alert(content);
});

JS : Créez le code permettant d’ajouter le texte « (Bonjour le monde) » à la suite du texte contenu dans le paragraphe contenu lorsque l’on clique sur le bouton contenu-btn4.

Ressource : https://api.jquery.com/append/

Solution :
$('#contenu-btn4').click(function () {
    $('#contenu').append(' (Bonjour le monde)');
});

JS : Créez le code permettant d’effacer le texte contenu dans le paragraphe contenu lorsque l’on clique sur le bouton contenu-btn5.

Solution :
$('#contenu-btn5').click(function () {
    $('#contenu').html("");
});

Sauf mention contraire*, l'article Manipulations de base avec jQuery [jquery03] et son contenu par Julien Crego sont mis à disposition selon les termes de la licence Creative Commons

Licence Creative Commons

Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

Cette licence vous permet de remixer, arranger, et adapter cette œuvre à des fins non commerciales tant que vous créditez la source en citant le nom des auteurs et que les nouvelles œuvres sont diffusées selon les mêmes conditions.

* Cette notice est intégrée automatiquement à la fin de chaque article de ce site.

S’abonner
Notification pour
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires