jquery - labunixlabunix.uqam.ca/~obaid/inf2005/a2016/pdf/jquery.pdf · • on doit télécharger la...

27
30/11/2016 1 JQuery 1 INF2005Programmation webA. Obaid JQuery Une librairie JavaScript permettant de faciliter le traitement des documents HTML Permet d'écrire du JavaScript avec une syntaxe plus concise. Fonctions Manipulation des arbres DOM incluant les styles Manipulation d'événements Effets d'animation Support pour le langage AJAX Supporté par tous les navigateurs. 2

Upload: trinhkhue

Post on 11-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

30/11/2016

1

JQuery

1

INF2005– Programmation web– A. Obaid

JQuery

• Une librairie JavaScript permettant de faciliter le traitement des documents HTML

• Permet d'écrire du JavaScript avec une syntaxe plus concise.

• Fonctions – Manipulation des arbres DOM incluant les styles – Manipulation d'événements – Effets d'animation – Support pour le langage AJAX

• Supporté par tous les navigateurs.

2

30/11/2016

2

INF2005– Programmation web– A. Obaid

Utilisation de JQuery

• On doit télécharger la libraire JQuery

• On l'enregistre pour s'y référer dans un document HTML: <script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">

… notre code JavaScript …

</script>

• Plusieurs sites de téléchargement: – http://docs.jquery.com/Downloading_jQuery#Download_jQuery

– Http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js

3

INF2005– Programmation web– A. Obaid

Appel de la librairie

• Toute commande JQuery doit être appelée après que le document soit chargé.

• On peut y déclarer et utiliser des fonctions.

• Tout doit être appelé dans un script JavaScript au sein de la fonction $(*).ready().

• On peu stocker le résultat d'une commande JQuery:

– var texte=$("#monDiv").html();

jq1.html

$(document).ready(function() { … Commandes JQuery/JavaScript … });

Sélecteur Évènement Fonction de traitement(anonyme)

4

Objet JQuery

30/11/2016

3

INF2005– Programmation web– A. Obaid

Un premier exemple

<html> <head> <title> Premier Exemple</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $("div").click(function() { alert("Je suis la !"); } ); }); </script> </head> <body> <div id=“monDiv"> Si on clique ici, on verra la fenetre d'alarme ! </div> </body> </html>

jq2.html

5

INF2005– Programmation web– A. Obaid

Les identificateurs

• Dans JavaSCript, on peut trouver un élément avec son identificateur grâce à la méthode getElementById()

• Dans JQuery, on peut tout simplement utiliser un sélecteur pour retrouver l'élément

vElelement= ... getElementById("maListe") …..

$(document).ready(function() { $("#maListe").addClass("rouge"); });

6

30/11/2016

4

INF2005– Programmation web– A. Obaid

Les sélecteurs

• Ils permettent d'accéder à des éléments du DOM. – Ensemble très riche

• Utilisent des noms de balises, des identificateurs, des noms de classe, des valeurs d'attributs, des pseudo-classes, etc.

• Utilisés dans une forme $(sélecteur) où sélecteur peut prendre plusieurs formes semblables à celles utilisées dans CSS. – $(balise)

– $(identificateur)

– $(classe)

– $(expression)

– … 7

INF2005– Programmation web– A. Obaid

Les sélecteurs

– $("p") : tous les éléments <p>

– $("p.intro") : tous les éléments <p> de classe "intro".

– $("p#demo") : l'élément <p> d'identité "demo".

– $("[href]") : les éléments ayant un attribut href.

– $("[href='#']") : les éléments avec un attribut href = "#".

– $("[href$='.jpg']") : tous les éléments ayant un attribut href se terminant par jpg".

– $("ul li:first") : le premier <li> de chaque <ul>

– $("ul li:last") : le dernier <li> de chaque <ul>

– $("div#intro.entete"): les éléments de classe "entete" à l'intérieur d'un <div> d'identité="intro"

– $(“td”) : tous les éléments <td> dans le document

– $("p a"): éléments <a> , descendants de tout élément <p>

– $("p > a"): éléments <a>, enfants directs de tout élément <p> 8

30/11/2016

5

INF2005– Programmation web– A. Obaid

Les sélecteurs

• sel:even : séléments en position paire dans une sélection.

• sel:odd: éléments en position dans une sélection.. • sel:eq(n) ou :nth(n) : les éléments qui se trouvent

à la position n. Ca commence à la position 0. • sel:gt(n) : éléments à la position > n. • sel:lt(n) : éléments se à la position < n. • sel:first : équivalent à sel:eq(0). • sel:last : dernier élément de la liste • élements:parent : éléments qui ont des enfants.

9

INF2005– Programmation web– A. Obaid

Les sélecteurs

10

<!—Fichier : selecteur1.html --> <html> <head> <style type="text/css"> .vert { background-color: green;} .gris { background-color: grey; } .gras { font-style: bold;} </style> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $('tr:odd'). addClass('vert'); $('tr:even'). addClass('gris'); $('p:eq(1)'). addClass('gras'); }); </script> </head>

<body> <table border=1> <th> Nom </th> <th> Age </td><th> Salaire</th> <tr > <td> Alain </td> <td> 35</td> <td> 65000</td></tr> <tr> <td> Jean </td> <td> 45</td> <td> 80000</td></tr> <tr> <td> Pierre</td> <td> 50</td> <td> 82000</td></tr> <tr> <td> Paul </td> <td> 38</td> <td> 70000</td></tr> </table> <p> Ceci est un premier paragraphe</p> <p> Ceci est une deuxieme paragraphe </p> </body> </html>

30/11/2016

6

INF2005– Programmation web– A. Obaid

Exemples de sélecteurs

1. <p id="leTexte"> 2. <span class="unTexte"> Bonjour la gang ! </span> 3. <img src="photo1.jpg" class="image1" /> 4. </p> 5. <p> 6. <img src="photo2.gif" alt=" image2 /> 7. <span class="unTexte"> Les photos de vacances ! </span> 8. </p> 9. <img src="photo3.jpg" style="display: none;" class=" image1" />

#leTexte 1 #leTexte .unTexte: 2 p > span: 2 span + img: 3, 7 span > imgaucun .img[src$=.jpg] 3,9 .img[src~=photo] 3,6 p ~ img 9 p:first + img aucun :hidden 9 img:hidden:not(.image1): acun p:contains('Bonjour'):has(span): 1

11

INF2005– Programmation web– A. Obaid

Autres sélecteurs JQuery

• Sélecteurs propres à JQuery permettant de spécifier certains caractéristiques des éléments: – sel:hidden : Éléments invisibles,

– sel:visible : Éléments visibles.

– sel:parent : Éléments qui ont des enfants.

– sel:contains(texte) : Éléments qui contiennent texte

– sel:empty : Éléments dont le contenu est vide

– sel:nth(n) : n-ème élément

– sel:contains('chaine'): éléments qui contiennent chaine

– …

12

30/11/2016

7

INF2005– Programmation web– A. Obaid 13

Autres sélecteurs JQuery

<!-- Fichier : selecteur1_1.html --> <html> <head> <style tye="text/css"> .accentue { font-style: italic; background-color: #0f0; } </style> <script type="text/javascript" src="jquery.js" ></script> <script tyep="text/javascript"> $(document).ready(function() { $('span:contains(assurance)').addClass('accentue'); }); </script> </head> <body >

<p> <span> Ceci est un texte qui contient le mot assurance.</span> <span> Ceci est un texte qui ne contient pas ce mot. </span> </p> <p> Le contrat d'assurance <span> est decrit en termes juridiques</span> </p> <span> Ici, est question par exemple de l'assurance-auto</span> </body> </html>

INF2005– Programmation web– A. Obaid

Événements dans JQuery

• Comme dans JavaScript, un événement est associé à un élément et pourra être programmé pour effectuer une tache définie dans une fonction.

• La fonction peut être anonyme: – $(sel).evenement(function() {

Commandes Jquery ou JavaScript … });

• Exemple d’évènements: click(), mouseover(),…

• Exemple:

– JQuery:

$(document).ready(function() { $("a").click(function() { alert("Bonjour tout le monde ! " ); }); });

– Équivalent JavaScript:

<a href="javaScript:void(0)" onclick="alert('Bonjour tout le monde ! ')">Lien</a>

14

30/11/2016

8

INF2005– Programmation web– A. Obaid

Événements dans JQuery

• $(document).ready(fonction)

• $(sélecteur).click(fonction)

• $(sélecteur).dblclick(fonction)

• $(sélecteur).focus(fonction)

• $(sélecteur).mouseover(fonction)

• …

15

INF2005– Programmation web– A. Obaid

Les callbacks

• Fonctions appelées dans d'autres.

• Un fonction (anonyme) peut avoir une autre fonction en paramètre qui sera exécutée à la fin de l’exécution de celle-ci. – Utilisé (entre autres) pour faire des animations

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $(".test").fadeOut("slow",function(){ $(this).fadeIn("slow"); }); }); </script>

Jq8.html

16

30/11/2016

9

INF2005– Programmation web– A. Obaid

Chainage des fonctions

• On peut mettre des fonctions en chaine appliquées à un objet.

• Au lieu d'écrire: – $(".toto").append(" un texte");

$(".toto").css("border","1px solid red"); $(".toto").addClass("titi"); $(".toto").removeClass("toto");

On écrirait: – $(".toto").append(" un texte").css("border","1px solid red") .addClass("titi").removeClass("toto");

17

INF2005– Programmation web– A. Obaid

La méthode html()

• Elle permet d'accéder ou de modifier le contenu d'un élément – sel.html() : pour l'accès.

– sel.html('Code HTML'): pour la modification.

• Exemples: – alert($('#titre').html());

• Affiche le contenuHTML de #titre.

– $('#titre').html("<h2>Voici mon nouveau contenu</h2>'):

• Change le contenu HTML de #titre.

$(document).ready(function() { $(".monPar1").html("<h2> Au revoir ancien paragraphe </h2>"); $(".monPar3").html($(".monPar2").html()); });

jq9.html

18

30/11/2016

10

INF2005– Programmation web– A. Obaid

La méthode text()

• Permet de manipuler le contenu d'un élément en tant que texte.

• Le contenu est considéré comme du texte et non comme du HTML.

<p id="premier">

<span class="texte"> Bonjour la gang ! </span> <img src="photo1.jpg" /> </p>

$(".premier").text() ramène: Bonjour la gang ! $(".premier").html() ramène: <span class="texte"> Bonjour la gang ! </span> <img src="photo1.jpg" /></p>

jq3.html

19

INF2005– Programmation web– A. Obaid

La méthode replaceWith()

• html() et text() permettent de changer le contenu d'une balise.

• replaceWith() permet de remplacer la balise et son contenu.

$(document).ready(function() { $('a').replaceWith('<h3>Encrageenlevé! </h3>'); $('#titre').replaceWith('<h1>'+$('#titre').html()+'</h1>'); $('.premier').replaceWith('<a href="http://www.uqam.ca"> Site UQAM</a>'); });

jq11.html

20

30/11/2016

11

INF2005– Programmation web– A. Obaid

Les méthodes before() et after()

• Elles permettent d'ajouter du contenu à un élément avant ou après l'élément en question.

• Exemple: – $('zonetexte').after('<p> N'oubliez de signer votre texte SVP ! </p>');

– $('zonetexte').after("<p class='petit'> N'oubliez de signer! </p>");

jq10.html

21

INF2005– Programmation web– A. Obaid

Les méthodes wrap() et wrapIn()

• wrap() permet d'ajouter une balise (ouvrante et fermante) autour d'un élément. – En fait on passe en paramètres une balise ouvrante et sa fermante

(sans contenu !).

• wrapIn() entoure un contenu.

• Exemple: – $('div').wrap('<em></em>') transformera les <div>en:

• <em><div> …</div></em>

– $('div').wrapIn('<em></em>') transformera les <div> en

• <div><em> … </em></div>

function colorer() { $('.rouge').wrap('<span style="color:red"></span>'); $('.vert').wrap('<span style="color:green"></span>'); $('.bleu').wrap('<span style="color:blue"></span>'); }

jq12.html

Jq12_1.html

22

30/11/2016

12

INF2005– Programmation web– A. Obaid

La méthode unwrap()

• Inverse de wrap().

• Elle permet d' enlever la balise parent qui l'enveloppe.

… $('#enveloppe').unwrap(); … <b> <div id="enveloppe"> Ceci est un div enveloppe avec &lt;b&gt; </div> </b>

jq12.html

23

INF2005– Programmation web– A. Obaid

Les méthodes remove() et empty()

• remove() permet de supprimer des éléments. – On lui passe un sélecteur de l'élément à supprimer.

• empty() permet de vider le contenu d'un l'élément

<script type="text/javascript"> function viderLesBoutons(){ $('#LesBoutons button').empty(); } function viderTout(){ $('body').empty() } </script> … <body> <div id="LesBoutons"> <button onClick="viderLesBoutons();">Vider les boutons</button><br /> <button > Un bouton vide !</button> </div> <button onClick="viderTout();">Vider les le tout </button> …

Jq13.html

$("button").click(function(){ $("p").remove(); } );

24

30/11/2016

13

INF2005– Programmation web– A. Obaid

JQuery et CSS

• On dispose de méthodes pour la manipulation des classes CSS: addclass(), removeClass(), etc.

$(document).ready(function() { $("#maListe"). hover(function() { $(this).addClass("vert"); }, });

$(document).ready(function() { $("#maListe"). hover(function() { $(this).removeClass("vert"); }; });

25

INF2005– Programmation web– A. Obaid

addClass() et removeClass()

• addClass() permet d'ajouter une ou plusieurs classes

• removeClass() permet d'enlever une ou plusieurs classes

• Il existe aussi removeAttr() pour gérer les propriétés CSS

<style type="text/css"> .monDiv { color: red; } .lien:hover { color: yellow; } </style> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> functionajouteclasse(){ $('div:first').addClass('monDiv'); $('a').addClass('lien'); } </script> </head> <body> <div> Premier div</div> <div>deuxiemediv</div> <buttononclick="ajouteclasse();"> Ajouter une classe </button> <br/><a href="page1.html"> Un lien </a> </body></html>

jq17.html

26

30/11/2016

14

INF2005– Programmation web– A. Obaid

Modifications de propriétés CSS

• css() peut s'utiliser de plusieurs façons: – Css("propriéte") permet de récupérer la valeur d'une propriété CSS

– Css("propriété","valeur") permet de définir une propriété CSS

– css({"apropriete1": "valeur1", "propriete2": "valeur2",…}) permet de définir plusieurs propriétés CSS

$('body').css('background-color','#0ff'); $('a') .css({ borderBottom: '2px dashed #ff00ff', color: '#4Cb', paddingLeft: '4px', 'float': 'left', margin: '4px', 'letter-spacing': '2px', })

27

INF2005– Programmation web– A. Obaid

Modifications de propriétés CSS <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> function accentuer(){ $("dt").addClass("accentue"); } </script> <style type="text/css"> h1 { font-size: 2.5em; margin-bottom: 0;} .accentue { font-style: italic; color:red;} </style> </head> <body > <h1>Villes du monde </h1> <dl> <dt> Montreal </dt><dd> Large, verte, vivante et dynamqiue</dd> <dt> New York </dt><dd> Dense, pleine de grattes-ciels , passionnante, centre d'affaires </dd> </dl> <a href="#" onMouseOver="accentuer()">Allez-y ! </a> </body> </html>

jq6.html

28

30/11/2016

15

INF2005– Programmation web– A. Obaid

Modifications de propriétés CSS

• La méthode toggleClass() permet d’ajouter et d'enlever des classes (par jonglage !) – Les classes peuvent être appliquées en série.

<style type="text/css"> .lrouge { background-color: #000; color: #fff; border : 5px solidyellow;} } .encadre { display: block; }

</style> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> function jouerAvec(){ $('a').toggleClass('encadre'). toggleClass('lrouge'); } </script> </head> <body>

jq18.html

29

INF2005– Programmation web– A. Obaid

Objets JQuery

• jQuery repose sur la fonction jQuery() appelée aussi $() qui retourne un objet jQuery.

• Cet objet a plusieurs méthodes: – Manipulation du DOM, de CSS, d’évènements et autres

effets visuels.

• Exemple: – Si on désire masquer progressivement les paragraphes

d’une page, on utilise : – $("p").fadeOut(); jq8.html

30

30/11/2016

16

INF2005– Programmation web– A. Obaid

JQuery et DOM

• La fonction $() retourne un tableau d'objets DOM. • Les éléments de ces tableaux sont accessibles grâce à leurs

indices. • Exemples:

– $('body'): retourne un tableau à un élément. – $('a') : retourne un tableau d' éléments <a> – $('p')[1] désigne le deuxième paragraphe.

• before() et after(), etc. utilisent ces indices pour déterminer la

place de l'action JavaScript à effectuer.

31

INF2005– Programmation web– A. Obaid

JQuery et DOM

• On peut consulter des propriétés de ces objets tels que tagName, length, etc.

• On a aussi des méthode de parcours de l'arbre DOM. – parent() renvoie l'élément parent direct d'un élément. – children() renvoie les éléments enfants directs d'un élément

• On peut ajouter des éléments à des endroits spécifiques avec

les méthodes prependTo(), appendTo(), insertBefore(), insertAfter()

function lister(){ alert($('.bouton').length); alert($('#bouton1')[0].tagName); alert($('body').parent()[0].tagName); }

Jq14.html

32

30/11/2016

17

INF2005– Programmation web– A. Obaid

Sélecteurs et formulaires

• Il existe des sélecteurs spécifiques aux formulaires : – :checked : les boutons checkbox ou radio cochés – :selected : les options (select) sélectionnées. – :input : les éléments input d'un formulaire. – :button : les boutons. – :reset : les boutons reset. – :submit : les boutons submit. – :checkbox : les cases à cocher. – :radio : les boutons radio. – :text : les champs de texte. – :password : les champs de mots de passes. – :hidden : les éléments cachés du formulaire. – …

• La méthode val() retourne la valeur d'un champ du formulaire. Elle permet aussi de modifier un contenu.

jq16.html

33

INF2005– Programmation web– A. Obaid

Événements de formulaires

• select: déclenché lorsque du texte est sélectionné dans un champ de type text ou un texteara.

• change: déclenché lorsque le texte d'un champ de type text, password ou texteara a été modifié.

• submit : déclenché lorsqu'un formulaire est soumis

• focus : déclenché lorsque le focus est mis sur un élément d'un formulaire

jq21.html

$(document).ready(function() { $(':text, textarea').select(function(){ alert("Champ texte selctionne : "+$(this).val()); }); $(':input').change(function(){ alert("Champ input modifie : "+$(this).val()); }); });

34

30/11/2016

18

INF2005– Programmation web– A. Obaid

Événements de souris et clavier

• keydown : enfoncement de la touche

• keypress : maintien de la touche enfoncée

• keyup : relâchement de la touche.

• mousedown : appui sur la souris

• mouseup : relâchement de la souris

• click : clic de la souris.

• mouseenter : la souris entre au-dessus de l'élément

• mouseleave : la souris quitte l'élément

• mouseover : la souris entre au-dessus de l'élément

• mouseout : la souris quitte l'élément

• mousemove : la souris bouge sur l'élément

jq22.html

jq23.html 35

INF2005– Programmation web– A. Obaid

Objet clic

• Correspond au clic de la souris;

• Possède des propretés de coordonnées: – pageX: Coordonnée X (gauche vers la droite)

– pageY: Coordonnée Y (de haut vers le bas)

36

30/11/2016

19

INF2005– Programmation web– A. Obaid

Événements de fenêtre

• scroll : déclenché lorsque l'utilisateur utilise un ascenseur horizontal ou vertical.

• resize : déclenché lorsque l'utilisateur redimensionne la fenêtre.

• load : déclenché lorsque l'élément en question a fini de se charger (page, cadre, image, etc.).

• ready : déclenché lorsque la page est prête. Utilisé avec l'objet document.

• unload : déclenché lorsque l'utilisateur quitte la page.

37

INF2005– Programmation web– A. Obaid

Autres événements

• hover() : déclenché lorsque la souris passe au-dessus d'un élément (mouseover) et quand elle s'en va (mouseout).

• toggle() : fonction de basculement appelée successivement pour les effets show/hide et slide).

jq24.html

38

30/11/2016

20

INF2005– Programmation web– A. Obaid

Les fonctions d'animation

• Les méthodes slideDown() et slideUp() changent la hauteur et le largeur d'éléments – $(sélecteur).slideDown(vitesse, fonction)

– $(sélecteur).slideUp(vitesse, fonction)

• La méthode slideToggle() permet de faire un basculement. – $(sélecteur).slideToggle(vitesse, fonction)

• La vitesse peut être: "slow", "fast", "normal" ou une durée en millisecondes. La fonction (si elle est présente) sera exécutée à la fin de l'effet.

39

<script type="text/javascript"> $(document).ready(function(){ $("#montrer").click(function(){ $("#tableau").slideDown("slow"); }); }); </script>

jq30.html

INF2005– Programmation web– A. Obaid

Les fonctions d'animation

40

<!-- Fichier : jq9.html --> <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function() { $("#bascule").click(function(){ $(".texte").slideToggle( 'slow'); }); }); </script> <style> .texte { width:400px; color: red;border:1px solid black; } #uneImage { width:100px; float: left; margin: 5px; } </style>

<body> <p> Appueyz sur le bouton pour faire appareite et disparaitre le bloc ci-dessous</p> <button id="bascule">Basculer</button> <div class="texte"> Quam ob rem ut ii qui superiores…. <img id="uneImage" src="ete.jpg"> <br> Ideo urbs venerabilis post superbas efferatarum gentium cervices oppressas latasque leges ... </div> </body> </html>

30/11/2016

21

INF2005– Programmation web– A. Obaid

Les méthodes pour l'animation

• animate() permet d'animer le style CSS.

• Elle a la forme suivante:

• animate(style, [durée], [manière], [fin]) • style: formé des couples attribut/valeur définissant le style de

l'élément à la fin de l'animation.

• durée : durée en ms de l'animation ou un symbole parmi : slow (600ms), normal (400ms), fast (200ms).

• manière : chaine qui détermine la façon dont les propriétés vont changer : "swing", "linear".

• fin: fonction appelée quand l'animation est finie.

jq25.html

41

INF2005– Programmation web– A. Obaid

Animation - Exemples

42

script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("div").animate({height:300},"slow"); $("div").animate({width:300},"slow"); $("div").animate({height:100},"slow"); $("div").animate({width:100},"slow"); }); }); </script> <body> <button>Start Animation</button> <br /><br /> <div style="background:#98bf21;height:100px;width:100px; position:relative"> </div> </body> </html>

http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_animation

30/11/2016

22

INF2005– Programmation web– A. Obaid

Animation - Exemples

43

<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("div").animate({left:"100px"},"slow"); $("div").animate({fontSize:"3em"},"slow"); }); }); </script> </head> <body> <button>Start Animation</button> <br /><br /> <div style="background:#98bf21;height:100px;width:200px;position:relative">HELLO</div> </body> </html>

http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_animation2

INF2005– Programmation web– A. Obaid

Les effets de visibilité

• Les méthodes hide() et show() donnent un effet d'animation en jouant sur la visibilité (attribut visibility) des éléments : – hide (vitesse[, callback])

– show(vitesse[, callback])

• vitesse peut être: "slow", "fast", "normal" ou une durée en millisecondes. Callback sera exécutée à la fin de l'effet.

• Ces méthodes sont souvent combinées.

• La méthode toggle (vitesse[, callback]) est utilisée pour passer entre l'absence et la présence d'un élément

jq27.html

44

$(document).ready(function(){ $(".cacheMoiCa").click(function(){ $(".secret").hide("slow"); }); });

$(document).ready(function(){ $("p").click(function(){ $(this).hide(); }); });

30/11/2016

23

INF2005– Programmation web– A. Obaid 45

Les effects de visibilité

<!-- Fichier : jq4.html --> <html> <head> <style> #click1{ margin:10px;padding:12px; border:2px solid blue; width: 80px; height:20px; } </style> <script type="text/javascript" src="jquery.js" ></script> <script tyep="text/javascript"> $(document).ready(function() { $("#click1").click(function(){ $("#div1").hide(); }); }); </script> </head>

<body> <div> <div id="click1"> Clickez ici </div> <div id="div1"> <img src="ete.jpg" width=300px/> </div> </div> </body> </html>

jq26.html

jq27.html

jq28.html

jq29.html

jq8.html

bouger.html

INF2005– Programmation web– A. Obaid

La méthode toggle()

46

<!-- Fichier : jq7.html --> <html> <head> <style type="text/css"> #go{ border:2px solid #666; width: 40px; } </style> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#go").click(function(event){ $("#leDiv").toggle('slow'); }); }); </script> </head>

<body> <div id="go">Vas-y</div> <div id="leDiv"> <img src="ete.jpg" width=120px /> </div> </body> </html>

30/11/2016

24

INF2005– Programmation web– A. Obaid

Modification de la transparence

• Les méthodes fadeIn() /fadeOut() permettent de faire apparaître/ disparaitre les éléments progressivement en jouant sur le transparence. – fadeIn(vitesse[, callback])

– fadeOut(vitesse[, callback])

• Des fois, on inclut une de ces méthodes comme callback de l'autre:

$("#p2").fadeOut(2000, function() {

$(this).fadeIn(2000);

});

INF2005– Programmation web– A. Obaid

Modification de la transparence

• fadeTo( ) permet de changer l'opacité d'un élément en la faisant passer à un niveau donné.

– fadeTo(vitesse, opacite, callback);

• opacity : valeur entre 0 et 1 (1 : très opaque).

48

30/11/2016

25

INF2005– Programmation web– A. Obaid

Modification de la transparence

49

<!-- Fichier : jq10.html --> <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function() { $("#plusOpaque").click(function(){ $(".texte").fadeTo( 'slow', 0.9); }); $("#moinsOpaque").click(function(){ $(".texte").fadeTo( 'slow', 0.1); }); }); </script> <style> .texte {width:400px; color: red; border:1px solid black;} #uneImage { width:100px; float: left; margin: 5px; } </style> </head>

<body> <p> Appueyz sur le bouton pour faire appareite et disparaitre le bloc ci-dessous</p> <button id="plusOpaque">Opaciser</button> <button id="moinsOpaque">Eclaircir</button> <div class="texte"> Quam ob... <img id="uneImage" src="ete.jpg"> <br> Ideo urbs venerabilis post superbas ... </div> </body> </html>

INF2005– Programmation web– A. Obaid

Modification de la transparence

50

<!-- Fichier : jq2_1.html --> <html> <head> <script type="text/javascript" src="jquery.js" ></script> <script tyep="text/javascript"> $(document).ready(function() { $("#p1").fadeOut('slow'); $("#p2").fadeOut(2000, function() { $(this).fadeIn(2000); }); }); </script> </head>

<body> <p id="p1"> Mon premier paragraphe Hac ex causa conlaticia stipe Valerius humatur ille …</p> <p id="p2"> Mon second paragraphe: Proinde die funestis interrogationibus praestituto im…. </p> </body> </html>

30/11/2016

26

INF2005– Programmation web– A. Obaid

La méthode animate()

• Permet d'animer des propriétés CSS

– animate(styles, [durée], [manière], [callback])

• styles: liste attribut/valeur des éléments style utilisés.

• durée : slow (600ms), normal (400ms), fast (200ms) ou une durée en ms.

• manière : façon dont les propriétés vont changer : "linear", "swing", …

• Le paramètre styles sous forme {propriété: "valeur" ,…}

• {width: "100", height: "200px", fontSize: "14pts"}

jq25.html

51

INF2005– Programmation web– A. Obaid

La méthode animate()

52

script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("div").animate({height:300},"slow"); $("div").animate({width:300},"slow"); $("div").animate({height:100},"slow"); $("div").animate({width:100},"slow"); }); }); </script> <body> <button>Start Animation</button> <br /><br /> <div style="background:#98bf21;height:100px;width:100px; position:relative"> </div> </body> </html>

Source: http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_animation

30/11/2016

27

INF2005– Programmation web– A. Obaid

Animation - Exemples

53

<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("div").animate({left:"100px"},"slow"); $("div").animate({fontSize:"3em"},"slow"); }); }); </script> </head> <body> <button>Start Animation</button> <br /><br /> <div style="background:#98bf21;height:100px;width:200px;position:relative">HELLO</div> </body> </html>

http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_animation2

INF2005– Programmation web– A. Obaid

Effets animés

• Pour avoir un animation progressive il faudra donner l'impression de continu

• Règle générale:

– Durée de l'animation d'une boite égale à la différence de hauteur (à la fin de l'animation) divisée par la vitesse

– La durée d'animation de la vidéo est de 25 frames/seconde (25 fps).

54