Cours L1 JQuery
Cours L1 JQuery
1
Utilisation de la bibliothèque JavaScript jQuery Par exemple,
1. Introduction <html>
<head>
Les bibliothèques Javascript reconnues : <script type="text/javascript"
• Ext (une bibliothèque Javascript indépendante) src="jquery.min.js"></script>
<script type="text/javascript">
• Dojo
$(document).ready(function()
• Angular_js {
• jQuery $("a").click( function()
{
JQuery est un framework développé en javascript qui alert("Hello world!");
permet notamment de manipuler aisément le contenu }
de votre page (la DOM) , d'utiliser AJAX, de créer des );
animations .Ce framework comme une librairie de });
fonctions, propose des méthodes puissantes pour </script>
parcourir le modèle DOM. Vous pouvez par exemple
récupérer le contenu textuel d'un élément, de <body>
modifier son code HTML, de lui ajouter un autre <a href="#">Lien1</a>
élément avant ou après, de lui incorporer un autre <a href="#">Lien2</a>
élément, de l'envelopper d'un autre élément, ainsi que </body>
de le copier, de le supprimer ou de le vider. </html>
Pour intégrer la bibliothèque JQuery de base , on écrit Le code suivant génère le même message :
dans la partie <HEAD> de la page :
<script type="text/javascript" src="jquery.min.js"> <a href="#" onclick="alert('Hello world');">Lien</a>
</script>
La différence est évidente :
Pour pouvoir manipuler le modèle objet du document • on n’a pas besoin d'écrire un événement
(DOM), il faut charger complètement chargé le DOM (le onclick pour chaque élément ;
document). Pour cela, nous enregistrons un • on obtient une séparation claire entre la
événement « document chargé » ou « $ structure (HTML) et le comportement (JavaScript) de la
(document).ready(function(){}) ». même manière que la feuille de style CSS est
La fonction ready permet l'éxécution d'une fonction dissociée du code HTML.
spécifique une fois le document DOM
entièrement chargé, Passer des fonctions à des méthodes
1
RV ENI p. 2
Par exemple, 2. Présentation des sélecteurs
function clickChamp(){
alert('Vous avez cliqué sur un élément '); Les sélecteurs permettent de sélectionner un ou plusieurs
} éléments du DOM grâce à une fonction spéciale nommée
$('a').click(clickChamp); « $ » , ces derniers pouvant être manipulés comme tout
autre objet.
this et les fonctions des méthodes
$('*') // Sélectionne tous les éléments (inclut les éléments
Dans une fonction passée à une méthode, , this est head, body, etc).
l'élément du DOM concerné par la fonction et il faut
utiliser $(this) afin d'utiliser les méthodes jQuery sur Selecteurs: "element"
les éléments qu'on modifie grâce à la méthode.
Notez le $(this) qui n'aurait pas été possible sans la Sélectionne les éléments en fonction de leur nom.
fonction anonyme !
Exemple : Ajoute une bordure aux DIV
$("p").mouseover( function() { $(this).css("border","3px <html>
solid grey");}); <head>
<script type="text/javascript" src="
Références à des éléments du DOM jquery.min.js"></script>
<script type="text/javascript">
Un objet jQuery contient plusieurs références à des $(document).ready(function(){
éléments du DOM .C'est-à-dire que quand on applique $("div").css("border","7px solid red");
des méthodes jQuery sur un objet jQuery, il y a
modification des éléments du DOM qu'il contient. });
Cette modification se répercute alors directement sur la </script>
page web.
<style>
div,span {
width: 60px;
height: 60px;
float:left;
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
}
</style>
</head>
<body>
<div>DIV1</div>
<div>DIV2</div>
<span>SPAN</span>
</body>
</html>
Selecteurs: ".class"
selectionne les éléments selon leur classe.
$(".tata");// retourne tous les éléments d’un document qui
ont la classe CSS "tata".
$('p.first') // Sélectionne les éléments <p> ayant la classe
"first".
<script type="text/javascript">
$(document).ready(function(){
$(".maClasse").css("border","3px solid
red");
});
</script>
2
RV ENI p. 3
</head>
<style> <body>
3
RV ENI p. 4
pourrait écrire cet appel de cette façon également : $ Selecteur: "selecteur1, selecteur2,
("span", $("#titi")); selecteurN"
$("table#tutu > tr:even"); retourne tous les éléments TR
pairs (pour les lignes impaires remplacer "even" par "odd") Retourne le résultat de tous les sélecteurs combinés.
contenus dans l'élément TABLE dont l'identifiant est
"tutu" . Cet appel peut etre extremement utile pour $('ul, ol, dl') // Sélectionne les éléments <ul>, <ol> et <dl>
appliquer une couleur de fond à toutes les lignes paires
par exemple.
Exemple : entourer d’une bordure pour tous les
Selecteur: "prev+next" éléments de type DIV, SPAN, et les paragraphe dispoant
de la classe myClass
Recherche tous les éléments répondant au sélecteur
"next", et qui se trouvent apres les éléments identifiés par
le sélecteur "prev". <script type="text/javascript">
$(document).ready(function(){
Exemple : Modifie le style des champs INPUT situés apres $
un LABEL. ("div,span,p.myClass").css("border","3px solid red");
});
Selecteur: "prev ~ siblings" </script>
Cible les éléments frères situés après l'élément ciblé par le <body>
sélecteur "prev" ( à noter que "prev" cible uniquement un <div>
seul élément), et qui répondent au sélecteur "siblings". <input type="radio" name="newsletter" value="Hot
Fuzz" />
Exemple : Sélectionne les éléments <div> frères se <span>name?</span>
situant après l'élément dont l'id est "debut". </div>
<div>
<input type="radio" name="newsletters" value="Cold
$("#debut ~ div").css("border", "3px groove blue"); Fusion" />
<span>name?</span>
Code de test: </div>
<div>
<div>div (doesn't match since before #prev)</div> <input type="radio" name="accept" value="Evil
<span id="debut">span#prev</span> Plans" />
<div>div sibling</div> <span>name?</span>
<div>div sibling <div id="small">div </div>
neice</div></div> </body>
<span>span sibling (not div)</span> </html>
<div>div sibling</div>
Selecteur: "[attribute!=value]"
4
RV ENI p. 5
Selecteur: "[attribute*=value]"
Recherche les éléments dont l'attribut spécifié n'est pas
égal à la valeur, et les éléments pour lequel l'attribut n'est Recherche les éléments dont la valeur de l'attribut spécifié
pas spécifié. contient entre autre la valeur spécifiée.
Exemple : Recherche tous les input dont l'attribut Name Exemple : Recherche les INPUT dont le nom contient la
n'est pas newsletter, et ajoute du texte en gras dans le chaine "man", et leur ajoute une valeur.
SPAN à coté de l'input.
<script type="text/javascript">
<script type="text/javascript"> $(document).ready(function(){
$(document).ready(function(){
$("input[name!=newsletter]").next().append("<b>; not $("input[name*='man']").val("has man in it!");
newsletter</b>");
}); });
</script> </script>
<body> <body>
<div> <form>
<input type="radio" name="newsletter" value="Hot <input name="man-news" />
Fuzz" /> <input name="milkman" />
<span>name is newsletter</span> <input name="letterman2" />
</div> <input name="newmilk" />
<div> </form>
<input type="radio" value="Cold Fusion" /> </body>
<span>no name</span>
</div>
<div> has man in it!
<input type="radio" name="accept" value="Evil has man in it!
Plans" /> has man in it!
<span>name is accept</span>
</div>
</body> Selecteurs: "[attribut]"
Résultat Recherche les éléments pour lequel l'attribut spécifié est
• name is newsletter renseigné.
• no name; not newsletter
• name is accept; not newsletter Exemple : Affiche l'id des div qui en ont un au clic.
Filtre ":disabled"
Filtres
Sélectionne les éléments qui sont désactivés.
// La notation [a|b] signifie que l'on applique le filtre a
ou le filtre b. <script type="text/javascript">
$(document).ready(function(){
Le filtre : ":first" $("input:disabled").val("cet
élément est désactivé");
Sélectionne le premier élément de la sélection. });
</script>
$('div:first') // Sélectionne le premier élément <div>.
<script type="text/javascript"> </head>
$(document).ready(function(){ <body>
$("tr:first").css("font-style", "italic");// <form>
Sélectionne la première ligne et lui attribut un style. <input name="email" disabled="disabled" />
// $("tr:first").css({backgroundColor: 'yellow', <input name="id" />
fontWeight: 'bolder'}); </form>
</body>
});
</script> Résultat
td { color:blue; font-weight:bold; }
6
RV ENI p. 7
<style>
Fitre : ":enabled"
table {
Sélectionne tous les éléments qui sont activés background:#eeeeee;
<script type="text/javascript"> }
$(document).ready(function(){
$("input:enabled").val("cet </style>
élément est activé"); </head>
}); <body>
</script>
<table border="1">
<tr><td>Row with Index #0</td></tr>
<body> <tr><td>Row with Index #1</td></tr>
<form> <tr><td>Row with Index #2</td></tr>
<input name="email" disabled="disabled" /> <tr><td>Row with Index #3</td></tr>
<input name="id" /> </table>
</form> </body>
</body>
$('div:[even|odd]') // Sélectionne les éléments
Résultat <div> de rang [pair|impair] (le premier rang est 0).
Filtre ":has(selector)"
cet élément est activé
Retourne les éléments dont au moins un de leur
élément fils répond au selecteur "selector".
Filtre ":eq(index)"
<script type="text/javascript">
$(document).ready(function(){
Sélectionne un élément par son index.
$("div:has(p)").addClass("test");//
Applique une bordure rouge aux éléments DIV qui
<script type="text/javascript">
contiennent un élément paragraphe.
$(document).ready(function(){
$("td:eq(2)").css("color", "red"); //
});
le 3è TD est selectionné
</script>
});
</script>
<style>
.test{ border: 3px inset red; }
<body>
</style>
<table border="1">
</head>
<tr><td>TD #0</td><td>TD #1</td><td>TD
<body>
#2</td></tr>
<tr><td>TD #3</td><td>TD #4</td><td>TD
<div> <p>Hello in a paragraph</p> </div>
#5</td></tr>
<div>Hello again! (with no paragraph)</div>
<tr><td>TD #6</td><td>TD #7</td><td>TD
</body>
#8</td></tr>
</table>
</body> Filtre :not(selector)
Filtre tous les éléments qui répondent à la sélection.
Filtre : ":even" et odd
$('div:not(.ok)') // Sélectionne les <div> n'ayant pas
la classe "ok".
Even : Selectionne les éléments pairs (index à partir
de 0).
<script type="text/javascript" src="
Odd : les éléments impairs
jquery.min.js"></script>
<script type="text/javascript">
<script type="text/javascript">
$(document).ready(function(){
$(document).ready(function(){
$("input:not(:checked) +
$("tr:even").css("background-
span").css("background-color", "yellow");
color", "red");
$("input").attr("disabled", "disabled");
$("tr:odd").css("background-color",
"green");
});
});
</script>
</script>
</head>
7
RV ENI p. 8
<body> Sélectionne les premiers fils des éléments
<div> répondant à la recherche.
<input type="checkbox" name="a" /> <script type="text/javascript">
<span>Mary</span> $(document).ready(function(){
</div> $('div:first-child
<div> ').css("background-color", "green");
<input type="checkbox" name="b" /> });
<span>lcm</span> </script>
</div> <body>
<div> <div> Texte 1
<input type="checkbox" name="c" <p> Paragraphe 1 </p>
checked="checked" /> </div>
<span>Peter</span> <div> Texte 2
</div> <p> Paragraphe2 </p>
</body></html> </div>
<body>
Filtre ":only-child"
Filtre : fonction parent
Sélectionne les éléments qui sont le seul fils des
éléments répondant à la sélection. •Parent(expression)
•:parent()
Exemple : Recherche et modifie l'apparence des
boutons qui n'ont pas de frère. Retourne un groupe d'élements contenant les
<script type="text/javascript"> parents des élements recherchés.
$(document).ready(function(){
$("div button:only- Exemple 1: colorer en vert les div ayant des fils
child").text("Alone").css("border", "2px blue solid");
<script type="text/javascript">
}); $(document).ready(function(){
</script> $('div:parent').css("background-
color", "green");
<style> // ou bien $
('div’).parent().css("background-color", "green");
div { width:100px; height:80px; margin:5px;
float:left; background:#b9e }
</style> });
</head> </script>
<body> <body>
<div> Texte </div>
<div> <div> <p> Paragraphe </p> </div>
<button>Sibling!</button> <body>
<button>Sibling!</button>
</div> Exemple 2:
<div>
<button>Sibling!</button> Recherche les élements parents de chaque
</div> paragraphe, et qui dispose de la classe "selected".
<div>
None $("p").parent(".selected")
</div>
<div> Code de test:
<button>Sibling!</button>
<button>Sibling!</button> <div><p>Hello</p></div><div
<button>Sibling!</button> class="selected"><p>Hello Again</p></div>
</div> Résultat:
<div> [ <div class="selected"><p>Hello Again</p></div> ]
<button>Sibling!</button>
</div>
</body> Filtre: ":selected"
</html>
Sélectionne tous les éléments qui sont sélectionnés.
Filtre :first-child
<script type="text/javascript">
8
RV ENI p. 9
$(document).ready(function(){ $("div:contains('dvp')")
$("select").change(function () { .css("background-color", "yellow");
var str = "";
$("select option:selected").each(function () });
{ </script>
// Affiche en bas en rouge les éléments qui sont
sélectionnés. <body>
<div> <p> Paragraphe </p> </div>
str += $(this).text() + " "; <div> <p> voila dvp </p> </div>
}); <body>
$("div").text(str);
})
.trigger('change');
}); Les autres filtres
</script>
• :gt(index) ou fonction gt
<style> Recherche tous les éléments qui ont in index supérieur
à celui entré. A noter que le premier élément a pour
div { color:red; } valeur 0 dans l'index.
• :header
</style> Retourne tous les éléments qui sont de type entête les
</head> h1,h2, h3, ...
<body> • :lt(index) ou fonction lt
Retourne les éléments ayant un index inférieur à celui
<select name="garden" multiple="multiple"> entré. A noter que le premier élément dispose de
<option>Flowers</option> l'index 0.
<option selected="selected">Shrubs</option> • :visible
<option>Trees</option> Recherche tous les éléments qui sont visibles.
<option selected="selected">Bushes</option>
<option>Grass</option> L’exemple suivant va colorer en vert les div de rang >1
<option>Dirt</option> et en rouge toutes les entetes
</select> <script type="text/javascript">
<div></div> $(document).ready(function(){
</body> $("div:gt(1)").css("background-color",
</html> "green");
// $("div").gt(1).css("background-color",
Fitre : fonction empty "green");
// $("div:lt(2)").css("background-color",
Supprime tous les noeuds fils des élements trouvés. "green"); // colorer en vert les div de rang <2
// $("div").lt(2).css("background-color",
Exemple : "green");
$(":header").css("background-color", "red");
$("p").empty() });
</script>
Code de test: <body>
<div> Texte 1 </div>
<div> Bonjour </div> <div> Texte 2 </div>
<p>Hello, <span>Person</span> <a href="#">and <div> Texte 3 </div>
person</a></p> <h1> Bonjour Rabe </h1>
<h2> Bonjour Rabe </h2>
Résultat: <div> Bonjour Koto </div>
<div> Bonjour </div> <body>
[ <p></p> ]
Filtre : contains(texte)
4. FONCTIONS DE BASE
Recherche les éléments qui contiennent le texte
fonction each : Boucler sur des éléments d’un
spécifié
objet jQuery
each() est une méthode qui permet d'itérer sur les
Exemple : colorer en jaune les éléments <div>
éléments d'un objet jQuery.
contenant le texte "dvp" (sensible à la casse !)
On lui passe en argument une fonction anonyme qui
s'exécutera pour chaque élément. Si cette fonction
<script type="text/javascript">
retourne false, each() s'arrête d'itérer sinon on
$(document).ready(function(){
passe à l'itération suivante.
9
RV ENI p. 10
Cette fonction peut avoir un argument qui représente Exemples avec des tableaux
l'indice de l'élément en cours (c'est le combien-ème ?)
ou non. La variable commence à zéro et peut être Code : JavaScript
nommée comme on le veut. $.each([ 0,1,1,2,3,5,8,13,21] ,function(n){
this représentera l'élément en question, donc $(this) $('body').append(n+'ème nombre de Fibonacci :
l'objet jQuery en question. '+this+'<br />');
});
Exemple 1:
Ajoute un attribut src aux deux images. Code : JavaScript
$("img").each(function(i){ var tableau = [
this.src = "image" + ( i+1)+ ".jpg"; 'Bonjour, comment vas-tu ?',
}); "Aujourd'hui, il fait beau !",
Code de test: $('q:first').text()
<img/><img/> ]
Résultat: ,chaine = '';
<img src="image1.jpg"/><img src="image2.jpg"/>
$.each(tableau,function(n,texte){
Exemple 2 chaine += 'Texte n°'+(n+1)+' : '+texte+'\n';
Code : JavaScript });
$('a').each(function(i) {
$(this) $('<pre></pre>').html(chaine) .appendTo('#contenu');
.prepend('<small>Lien n°'+(i+1)+' »</small> ')
.append(' <small>« '+$(this).attr('href')+'</small>'); fonction eq
});
Réduit le résultat de la recherche à un élément,
Code : JavaScript correspondant à une position donnée.
$('#checkboxs :checkbox').each(function(i){ L'intervalle des positions commence à 0 et se termine à
if(!$(this).attr('checked')){ taille de l'index-1.
alert(i+" checkboxs décochées "); Exemple 1:
return false; $("p").eq(1) ;
} Code de test:
}); <p>Ceci est un test.</p><p>et un autre</p>
Résultat:
On peut éviter parfois d'utiliser each() ! [ <p>et un autre</p> ]
Exemple 2 :
Donc le premier exemple pourrait s'écrire : $("p").eq(1).css("background-color", "green");
10
RV ENI p. 11
Résultat: IL était une fois un grand dinosaure...
2 Le titre de la balise "p" est:
Exemple 2: énorme, gigantesque
Retourne la position de l'élement avec l'id "foobar".
$("*").index( $('#foobar')[0] ) Définir les attributs : attr(attribut, valeur)
Code de test:
<div id="foobar"><b></b><span Exemple 1 :
id="foo"></span></div> Code : JavaScript
Résultat: $('div.header_gauche img').attr('title',' Site de Dupont');
0 Exemple 2: Assigne les attributs src et alt à toutes les
images.
fonction length ou size
Retourne le nombre d'élements trouvés. <script type="text/javascript">
Exemple : $(document).ready(function(){
Retourne le nombre d'élements "img". $("img").attr({ src: "images/hat.gif", alt: "Logo
$("img").length; jQuery!" });
Code de test: $("div").text($("img").attr("alt"));
<img src="test1.jpg"/> <img src="test2.jpg"/>
Résultat: });
2 </script>
<style>
5. GESTION DES ATTRIBUTS
img { padding:10px; }
attr() est une méthode qui peut s'utiliser de quatre div { color:red; font-size:24px; }
façons différentes.
</style>
Récupérer les attributs </head>
<body>
attr('attribut') renvoie la valeur d’un attribut.
Code : JavaScript - Essayez ce code ! - Sélectionner <img/><img/><img/> <!—3 images affichées
Exemple 1 : Renvoie l'attribut 'title' de l'élément ayant <div><B>Attribute of Ajax</B></div>
comme id 'titre'. </body>
$('#titre').attr('title');
// Écrit après #titre son attribut 'title'. attr(liste de couples attribut / valeur ou
$('#titre').after($('#titre').attr('title')); fonction)
Exemple2 : Retourne l'attribut title du premier element on peut définir plusieurs couples attributs / valeurs à la
de type "p" dans la page. fois.
Exemple 1 : Ce code change tous les attributs title, alt
et src de toutes les images.
<script type="text/javascript"> Code : JavaScript
$(document).ready(function(){ $('img').attr({
var title=$("p").attr("title"); title : 'Mes photos de vacances',
$("div").text(title); alt : 'Ceci est une image',
}); src : 'vacances.jpg'
</script> });
<style>
On peut aussi procéder de cette façon :
div { color:red; }
Code : JavaScript
</style> var attributsImages = {
</head> title : 'Mes photos de vacances',
<body> alt : 'Ceci est une image',
src : 'vacances.jpg'
<p title="énorme, gigantesque"> };
IL était une fois un dinosaure... $('img').attr(attributsImages);
</p>
Le titre de la balise "p" est:<div></div> Exemple 2 : assigne une paire attribut/valeur a tous
les élements concernés.
</body>
Assign la propriété disable à tous les boutons qui se
Résultat : trouve apres le 1er bouton (la position démarre à 0).
11
RV ENI p. 12
simplement :
<script type="text/javascript"> Code : JavaScript
$(document).ready(function(){ $('a').attr('href',function(i,href){
$("button:gt(1)").attr("disabled","disabled"); return 'http://anonym.to/?'+href;
});
});
</script> Exemple2 : Assigne une valeur à un attribut donné,
pour tous les élements concernés. Mais une fonction
<style> est passée en paramètre au lieu d'une chaine de
caractères, et son éxécution retournera la valeur que
button { margin:10px; } prendra l'attribut.
13
RV ENI p. 14
<style> Exemple :
$("input").val();
.red { color:red; }
val ( valeur )
</style> Assigne une nouvelle valeur à l'attribut "value" des
</head> éléments de la sélection.
<body>
Exemple :
<span>Hello</span> $("input").val("test");
<div></div> Code de test:
<div></div> <input type="text" value="some text"/>
<div></div> Résultat:
<input type="text" value="test"/>
</body>
Retourne le contenu texte de tous les élements $("#single").val("Single2"); // "Single2" est choisie de
concernés par la recherche. Fonctionne avec les la liste déroulante
documents HTML et XML. $("#multiple").val(["Multiple2", "Multiple3"]); //
" Multiple2", "Multiple3 sont choisies
•Text ( valeur ) $("input").val(["check1","check2", "radio1" ]); //
Assigne un contenu texte aux élement concernés par check1","check2", "radio1" deviennent cochés
la recherche.
Code de test:
15
RV ENI p. 16
Résultat:
<select id="single"> <p style="left:30px;">Test Paragraph.</p>
<option>Single</option>
<option>Single2</option> Exemple 4 :
</select> Envoie la couleur et le fond à tous les paragraphes.
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option> $("p").css({ color: "red", background: "blue" });
<option>Multiple2</option> Code de test:
<option selected="selected">Multiple3</option> <p>Test Paragraph.</p>
</select><br/> Résultat:
<input type="checkbox" name="checkboxname" <p style="color:red; background:blue;">Test
value="check1"/> check1 Paragraph.</p>
<input type="checkbox" name="checkboxname"
value="check2"/> check2 Exemple 5: définir plusieurs attributs CSS
<input type="radio" name="r" value="radio1"/> radio1 Code : JavaScript
<input type="radio" name="r" value="radio2"/> radio2 // Couleur de fond cyan.
$('body').css('background-color','#0ff');
7. Style
// Formatage des liens.
La fonction css() peut s'utiliser de plusieurs façons $('a')
différentes, les mêmes que attr(). Pour résumer : .css({
• css('attribut') permet de récupérer la valeur borderBottom: '2px dashed #88d',
d'un attribut CSS color: '#44b',
• css('attribut',valeur) permet de définir un paddingLeft: '4px',
attribut CSS 'float': 'left',
• css({attribut1: valeur1, attribut2: valeur2}) margin: '4px',
permet de définir plusieurs attributs CSS 'letter-spacing': '2px',
• valeur dans les deux lignes précédentes peut textDecoration: function(){
être une fonction qui retourne la valeur de return $(this).attr('decoration');
l'attribut CSS. },
Dans le troisième cas, l'attribut border-left-style par opacity: 0.8
exemple, s'écrira borderLeftStyle ou 'border-left- })
style'. .attr('title',function(){
return 'couleur : '+$(this).css('color')
A retenir : });
1. float est un mot clé du langage JavaScript, il
est donc préférable de l'entourer de guillemets.
2. L'attribut opacity, un nombre (ou chaîne de css: fonction height
caractères) compris entre 0 et 1
16
RV ENI p. 17
Code de test: élément).
<p>This is just a test.</p>
Résultat: $('#boite').offset({
300 left : 28
, top : 45
• Width(valeur) });
Assigne une largeur aux élement spécifiés. Si aucune
unité n'est spécifiée (comme 'em' ou '%'), l'unité px
sera choisie par défaut. var hauteur = $('div.liste:first').outerHeight(true) + 2;
Exemple 2: $('div.liste').offset(function( i , o ){
$("p").width("20em"); return {
Code de test: top : i * hauteur
<p>This is just a test.</p> , left : o.left
Résultat: };
<p style="width:20em;">This is just a test.</p> });
Exemple 3:
$("p").width(20); css: fonction scrollTop
Code de test:
<p>This is just a test.</p> Ascenseurs
Résultat:
<p style="width:20px;">This is just a test.</p> ScrollTop() : Renvoie le décalage en pixel entre le haut du
document et l'élément courant cad le nombre en pixels
Exemple 4: de défilement de l'ascenseur vertical.
scrollLeft() renvoie le nombre en pixels de défilement de
// Pour que le logo prenne presque toute la page. l'ascenseur horizontal.
// (Math.round(x) retourne l'entier le plus proche de x.)
.
$('img#logo').width(Math.round($ Exemple :
('body').width()*0.9)); var p = $("p:first");
$("p:last").text( "scrollTop:" p.scrollTop() );
css: fonction offset (Positions ) Code de test:
Absolue <p>Hello</p><p></p>
Résultat:
offset() est une méthode qui permet de récupérer la <p>Hello</p><p>scrollTop:0</p>
position X et Y d'un élément par rapport à la page.
Elle renvoie un objet contenant left et top : ScrollTop(valeur) scrollLeft(valeur)
• offset().left renvoie la position horizontale (X) Change le décalage en pixels entre le haut du
d'un élément par rapport à la page ; document (caractéristique "top") et l'élément
• offset().top renvoie la position verticale (Y) courant, en prenant la valeur passée en argument.
d'un élément par rapport à la page.
Exemple : Récupère l'offset du second paragraphe.
var p = $("p:last"); Exemple 1 :
var offset = p.offset(); $("div.demo").scrollTop(300);
p.html( "left: " offset.left ", top: " offset.top ); Code de test:
Code de test: <div class="demo"><p>Hello</p></div>
<p>Hello</p><p>2nd Paragraph</p>
Résultat: Exemple 2 :
Hello $('body').animate({
scrollTop : '800px'
left: 10, top: 36 },5000);
18
RV ENI p. 19
On peut utiliser pour récupérer les valeurs de ces On ne peut pas sélectionner un bouton radio avec
éléments : val('valeur') mais changera l'attribut value du radio .
Pour changer les valeurs des <input type="radio" />, on
Code : JavaScript utilise attr('checked','checked') sur un élément :
// checkbox sera différent selon que les checkbox sont
cochées ou non. Code : JavaScript
// Par exemple : // Sélectionne le second.
// '<br />Choix CheckBox 1 : Non Cochée' ; $
// '<br />Choix CheckBox 2 : Cochée' ; ('input[name="choixradio"]:eq(1)').attr('checked','chec
// '<br />Choix CheckBox 3 : Non Cochée'. ked');
var checkbox = "";
$('input[name="choixcheck"]').each(function(){ Exemple 1 : Un petit calculateur
checkbox += <script type="text/javascript">
'<br />'+$(this).attr('value')+' : '+ $(document).ready(function(){
($(this).attr('checked') == true ? '' : 'Non ')+'Cochée'; $("#plus").click( function() { //$
}); (" :button #plus").click( …)
var res = parseInt( $("#a").val())
// ALTERNATIVE : +parseInt( $("#b").val());
// checkbox contiendra une liste de toutes les checkbox $
cochées. ("#resultat").val(res);
// Par exemple "Choix CheckBox 1,Choix CheckBox 2". }
var checkbox = ""; );
$('input[name="choixcheck"]:checked').each(function(i){
checkbox += (i>0 ? ',' : '')+$(this).attr('value'); $("#moins").click( function() {//$
}); (":button#moins").click(…)
var res = parseInt( $("#a").val())-
// Renvoie les contenus des balises option parseInt( $("#b").val());
sélectionnées. $("#resultat").val(res);
// Par exemple "Select Multiple 1,Select Multiple }
2,Select Multiple 3". );
// Si elles sont toutes les trois sélectionnés. });
$('#choixmultiple').val(); </script>
<body>
Définir les valeurs
<form>
val(valeur) permet de définir la ou les valeur(s) des
<input type ="text" id="a" value="" /> <br>
éléments d'un formulaire.
<input type ="text" id="b" value="" /> <br>
• valeur doit être une chaîne de caractères pour <input type ="text" id="resultat" value="" /> <br>
les <input type="text" />, <input type ="button" id="plus" value="plus" />
<textarea></textarea> et <select></select>. <input type ="button" id="moins" value="moins" />
• valeur doit être un tableau de chaînes de </form>
caractères pour les <body>
<input type="checkbox" />, Exemple 2 : les boutons ont le même id
<select multiple="multiple"></select>. <script type="text/javascript">
$(document).ready(function(){
19
RV ENI p. 20
$("#button").click( function() Ajoute un élément DOM à la suite du contenu de
{ var op = $(this).val(); chaque paragraphe.
var res;
if $("p").append( $("#foo")[0] );
(op=="plus")
var res = parseInt( $("#a").val()) Code de test:
+parseInt( $("#b").val()); <p>I would like to say: </p> <b id="foo">Hello</b>
else Résultat:
if <p>I would like to say: <b id="foo">Hello</b></p>
(op=="moins")
var res = parseInt( $("#a").val())-
parseInt( $("#b").val()); fonction prepend (ajout avant)
$
("#resultat").val(res); Ajoute du contenu à l'intérieur des élements
sélectionnés, au début.
}
); Exemple 1:
}); Ajoute un objet jQuery au début de tous les
</script> paragraphes.
<body> $("p").prepend( $("b") );
<form> Code de test:
<input type ="text" id="a" value="" /> <br> <p>I would like to say: </p><b>Hello</b>
<input type ="text" id="b" value="" /> <br> Résultat:
<input type ="text" id="resultat" value="" /> <br> <p> <b>Hello</b>I would like to say: </p>
<input type ="button" id="operation" value="plus" />
<input type ="button" id="operation" value="moins" /> Exemple 2:
</form> Ajoute un Element DOM au début de tous les
paragraphes. A noter que "[0]" permet de sélectionner
9. FONCTIONS DE MANIPULATION le premier élement qui dispose de la classe "foo".
Exemple 1:
Insère un objet jQuery (similaire à un tableau
d'élements DOM) avant tous les paragraphes.
$("p").before( $("b") );
Code de test:
<p>I would like to say: </p><b>Hello</b>
Résultat:
<b>Hello</b> <p>I would like to say: </p>
Exemple 2:
Insère du code HTML avant tous les paragraphes.
$("p").before("<b>Hello</b>");
Code de test:
<p>I would like to say: </p>
Résultat:
21
RV ENI p. 22
o A.before(B) revient au même que
B.insertBefore(A).
o A.after(B) revient au même que
B.insertAfter(A).
fonction remove
Exemple 1:
$("p").remove();
Code de test:
<p>Hello</p> how are <p>you?</p>
Résultat:
how are
Exemple 2:
$("p").remove(".hello");
Code de test:
<p class="hello">Hello</p> how are <p>you?</p>
Résultat:
how are <p>you?</p>
Insérer à l'intérieur et à l'extérieur
Insère tous les éléments définis par A après ceux Remplace les éléments pointés par la fonction par
définis par B dans l'expression $(A).insertAfter(B). l'élément courant.
Equivaut à $(B).after(A).
Exemple :
Exemple : $("<b>Paragraph. </b>").replaceAll("p"); // remplace
$("p").insertAfter("#foo"); tou p par <b>Paragraph. </b>
Code de test: Code de test:
<p>I would like to say: </p><div id="foo">Hello</div> <p>Hello</p>
Résultat: <p>cruel</p>
<div id="foo">Hello</div><p>I would like to say: </p> <p>World</p>
Résultat:
fonction insertBefore <b>Paragraph. </b>
<b>Paragraph. </b>
Insère tous les éléments définis par A avant ceux <b>Paragraph. </b>
définis par B dans l'expression $(A).insertBefore(B).
Equivaut à $(B).before(A). fonction replaceWith
Exemple 4:
10.EVENEMENTS Annule une action par défaut et empêche le
bouillonnement d'évènements en retournant "false".
En jascript,
element.addEventListener('evenement',function(){ $("form").bind("submit", function() { return false; }) ;
// Action
}); La fonction false
// ou
element.onevenement = function(){ Depuis la version 1.4.3, au lieu de spécifier une
// Action fonction, on peut mettre un booléen false.
}; Il désigne alors la fonction qui renvoie false.
Les événements avec jQuery seront créés grâce à des
méthodes ayant pour nom le type de l'événement, Code : JavaScript
l'argument étant la fonction de retour. $('a').bind('click',false);
// est équivalent à
// Écoute d'un événement $('a').bind('click',function(){
elements_jQuery.evenement(function(){ return false;
// Action });
}); Dans ce cas-là, cela supprime le comportement par
évènements: fonction bind ( type de défaut du navigateur qui consiste à ouvrir le lien
l'évènement, donnees, fonction liée a l'évènement) (attribut href de la balise <a>).
Permet de lier une action à un évènement particulier. Attacher plusieurs événements en même
Le gestionnaire d'évènements peut être passé en temps
argument de la fonction à appeler Pour arrêter l'action
par défaut et la remontée des évènements Une des nouveautés de la version 1.4 est de pouvoir
(bouillonnement ) vers tous les parents, la fonction doit donner un objet en argument à bind(), contenant des
retourner "false". couples nom de l'événement / fonction de retour
attachée.
Les donnees (Objet): (optionnel) données
supplémentaires passées au gestionnaire Par exemple : Code javascript
d'évènement accessible avec event.data
$('h1')
Exemple 1: .bind({
Empêche simplement le bouillonnement d'évènement mouseenter: function(){
en utilisant la méthode stopPropagation. $(this).css('color','red');
}
$("form").bind("submit", function(event){ , mouseleave: function(){
event.stopPropagation(); $(this).css('color','green');
}); }
, click: function(){
Exemple 2: $(this).css('color','yellow');
$("p").bind("click", function(){ }
alert( $(this).text() ); });
});
bind() permet de généraliser cela en lui passant en
Code de test: premier argument une chaîne de caractères
<p>Hello</p> représentant tous les événements (séparés par des
espaces) à lier avec la fonction passée en paramètre.
Résultat:
alert("Hello") Code : JavaScript
Exemple 3: $('p,textarea')
Ajoute une donnée supplémentaire au gestionnaire .bind('mouseenter focus',function(){
d'évènement. $(this).css('background-color','red');
})
function handler(event) { .bind('mouseleave blur',function(){
alert(event.data.foo); $(this).css('background-color','green');
} });
$("p").bind("click", {foo: "bar"}, handler)
$('q').bind('dblclick',function(){
Résultat: // Si l'attribut auteur existe...
alert("bar") if($(this).attr('auteur')){
24
RV ENI p. 25
// ... l'afficher. $("p").unbind( "click" )
alert("L'auteur de cette citation est "+$ Code de test:
(this).attr('auteur')+' !'); <p onclick="alert('Hello');">Hello</p>
} Résultat:
}); [ <p>Hello</p> ]
Complément d'informations sur bind() Déclenche l'évènement qui se produit lorsque l'élément
perd le focus. Pour éviter cette chaine de
Avec bind , on peut créer nos propres événements déclenchement, il surffit d'ajouter un "return false" dans
et cela va de pair avec l'utilisation de trigger(). une des fonctions.
:
Code : JavaScript Exemple 1 : Force le déclenchement de l'évènement
$('a').bind('lien',function(){ sans intervention de l'utilisateur.
alert('Vous aller vers '+$(this).attr('href')+' !');
}) $("p").blur();
.click(function(){
if(!$(this).hasClass('interne')){ Exemple 2: Ajoute une fonction associée à
$(this).trigger('lien'); l'évènement blur pour les éléments de la sélection.
}
}); $(":text").blur( function() { alert("Hello"); } );
<a href="page.html" class="internex" > Votre lien Code de test:
</a> <input type ="text" value="zone1" /> <br>
<input type ="text" value="zone2" /> <br>
Ce code peut tout aussi bien s'écrire comme suit
depuis la version 1.4 :
Code : JavaScript évènements: fonction focus
$('a').bind({ Déclenche l'évènement de focus sur les élements
lien : function(){ spécifiés.
alert('Vous aller vers '+$(this).attr('href')+' !');
} Exemple 1 :
, click : function(){ $("p").focus();
if(!$(this).hasClass('interne')){
$(this).trigger('lien');
} Exemple 2 : Associe une fonction a l'évènement focus pour
}); les éléments de la sélection.
Exemple :
évènements: fonction unbind (type evt, $("p").focus( function() { alert("Hello"); } );
function) Code de test:
<p>Hello</p>
L'opposé de la fonction bind, supprime les actions
associées à un évènement particulier pour les Exemple 3:
élements de la sélection. Si aucun argument n'est $(':input').focus(function(){
spécifié, les actions liées à tous les évènements sont $(this).css('background-color','#00f');
supprimées. Si une fonction est passée en second });
paramètre, seulement les actions du type de la fonction $(':input').blur(function(){
passée en paramètre seront supprimées. $(this).css('background-color','#f00');
});
Exemple 1: // Ne jamais pouvoir accéder
$("p").unbind( "click", function() { alert("Hello"); } ) // à une balise formulaire.
Code de test: $(':input').focus(function(){
<p onclick="alert('Hello');">Hello</p> $(this).blur();
Résultat: });
[ <p>Hello</p> ]
// Ou encore ne jamais pouvoir
// sortir d'une balise formulaire.
Exemple 2:
$(':input').blur(function(){
$("p").unbind()
$(this).focus();
Code de test:
});
<p onclick="alert('Hello');">Hello</p>
Résultat:
[ <p>Hello</p> ] évènements: fonction change (fonction)
Exemple 3:
25
RV ENI p. 26
L'évènement "change" est déclenché lorsque le Si on clique sur un élément d’id unbind alors le texte
contrôle est modifié. Par exemple lorsque le contenu « Ne fait rien » est affiché dans l’élément d’id theone
d'un objet de formulaire est changé et qu'on quitte cet et l’événement click est supprimé de l’élément d’id
objet, contrairement a l'évènement "blur" qui est theone
déclenché même si l'objet n'a pas été modifié.
function aClick() {
Exemple : $("div").show().fadeOut("slow");
$(":text").change( function() { alert("Hello"); } ); }
$(':input').change(function(){ $("#bind").click(function () {
alert($(this).val()); $("#theone").live("click", aClick)
}); .text("Cliquez pour voir!");
});
Code de test: $("#unbind").click(function () {
<input type ="text" value="zone1" /> <br> $("#theone").die("click", aClick)
<input type ="text" value="zone2" /> <br> .text("Ne fait rien...");
});
évènements: fonction click <body>
<div id="bind"> Bind </div>
Associe une fonction à l'évènement click des élements <div id="unbind"> Unbind </div>
de la sélection. <div id="theone"> Theone </div>
</body>
Exemple :
$("p").click( function() { alert("Hello"); } ); Exemple 2 : Cloner sans copier les événements mais
Code de test: qui copie les événements live quand même.
<p>Hello</p>
$('#contenu :text')
évènements: fonction dblclick .live('mouseover',function(){
$(this).css('background-color','#fbf');
})
Exemple : .live('mouseout',function(){
$("p").dblclick( function() { alert("Hello"); } ); $(this).css('background-color','#fff');
})
Code de test: .live('click',function(){
<p>Hello</p> $(this)
// Cloner sans copier les événements mais
évènements: fonction die et live (type
// qui copie les événements live quand même.
.clone()
evenement, fonction) .insertAfter(this);
});
La fonction live similaire à la fonction bind(), lie un <div id="contenu">
gestionnaire à un évènement pour les éléments <p> Bonjour RIVO </p>
sélectionnés. </div>
< !—Cloner
Les évènements supportés : click, dblclick, <div id="contenu">
mousedown, mouseup, mousemove, <p> Bonjour RIVO </p>
mouseover, mouseout, keydown, keypress, </div>
keyup. <div id="contenu">
Les évènements non suportés: blur, focus, <p> Bonjour RIVO </p>
mouseenter, mouseleave, change, submit. </div>
La fonction die est l'inverse de la fonction live(). Elle évènements: fonction load
supprime un évènement lié à un élément. Sans
argument, tous les évènements seront • Load(fonction)
supprimées. load est déclenché lorsque l'élément en question a
complètement fini de se charger : la page, les
Si la fonction associée à l'évènement par live() cadres, les iframes, les objets mais surtout les
est passé en second argument, alors seulement images.
ce gestionnaire d'évènement est supprimé. Exemple1 :
Exemple : la fonction live() et die(). $("p").load( function() { alert("Hello"); } );
Si on clique sur un élément d’id bind alors le texte Code de test:
« Cliquez pour voir! » est affiché dans l’élément d’id <p>Hello</p>
theone. Si on clique sur le texte « Cliquez pour voir! »,
la page actualisée n’affiche pas les div.
26
RV ENI p. 27
Exemple2 : <p>Hello</p>
$("img").load(function(){ Exemple 2
alert("Image loaded.");
}); $(document).unload(function(){
alert('Au revoir et à bientôt !');
Code de test: });
Résultat: $(document).keydown(function(evenement){
// Si evenement.which existe, codeTouche vaut celui-
<div id="feeds"><b>45</b> feeds found.</div> ci.
// Sinon codeTouche vaut evenement.keyCode.
Exemple 2: var codeTouche = evenement.which ||
une fonction de retour sera éxécutée lorsque les evenement.keyCode;
données seront chargées. alert(codeTouche);
});
$("#feeds").load("feeds.html",
{limit: 25},
function() { alert("The last 25 entries in the feed have
been loaded"); } Exemple 3 : on peut récuperer les positions X (pageX )
); et Y (pageY).
L'évènement mouseenter se déclanche lorsque le over (Fonction): fonction a éxécuter quand le curseur
pointeur rentre dans un élément. pointe sur l'élement
out (Fonction): fonction à éxécuter lorsque le curseur
Exemple : sortira du cadre de l'élement.
Exemple 1 : Ajoute une classe « hover » au passage
$("p").mouseenter( function() { alert("Hello"); } ); de la souris et l’enleve à la sortie
$("p").hover(function(){
Code de test: $(this).addClass("hover");
},function(){
<p>Hello</p> $(this).removeClass("hover");
});
<style>
évènements: fonction mousemove .hover {
(fonction) background-color:blue;
28
RV ENI p. 29
}
</style> Exemple :
<body> Déclenche tous les évènements d'envoi contenu dans
<p>Hello</p> les formulaires, et les envoie.
</body>
$("form").submit();
Exemple 2 : Soulignage d'un lien quand la souris
passe dessus. • Submit(fonction) : Associe une fonction à
$('a').hover(function(){ l'évènement d'envoi des élements spécifiés.
$(this).css('text-decoration','underline'); Exemple :
},function(){ Cet exemple permet de vérifier que le champ input
$(this).css('text-decoration','none'); contient bien une valeur. Si ce n'est pas le cas, le
}); formulaire ne sera pas envoyé car la fonction retourne
une valeur false.
Redimensionnement
Exemple 1:
resize est déclenché lorsque l'utilisateur redimensionne $("#myform").submit( function() {
la fenêtre en utilisant les poignées par exemple, mais return $("input", this).val().length > 0;
aussi en réduisant sa fenêtre. } );
Pour l'utiliser sur la fenêtre principale du navigateur il
faut appliquer la méthode sur $(window) et non $ Code de test:
(document) . <form id="myform"><input /></form>
Exemple : Exemple 2:
$(window).resize(function(){
alert('Arrête de me redimensionner !'); $('form[name="inscription"]').submit(function(){
}); if($('form[name="inscription"]
:password:first').val().length < 6){
évènements: fonction one (type evt, alert('Veuillez rentrer au moins 6 caractères dans
données, fonction) votre mot de passe');
return false;
la fonction associée à l'évènement ne sera éxécuté au }
maximum une fois pour chaque élément de la });
sélection.
évènements: fonction toggle
donnees (Objet): (optionnel) Données supplémentaires
à passer au gestionnaire d'évènements (enregistrées Variantes:
dans event.data) • Toggle(impair,pair)
Exemple : • Toggle()
Dans cet exemple, une alerte n'apparaitra que lors du Permet de switcher entre deux fonctions à chaque clic
premier clic sur le paragraphe. sur les élements de la sélection. Dès que l'un d'entre
eux est cliqué, la première fonction est éxécutée, et
$("p").one("click", function(){ lors d'un nouveau clic, la seconde sera éxécutée, puis
alert( $(this).text() ); de nouveau la première,etc.
});
Paramétres:
Code de test: • impair (Fonction): fonction à éxécuter lors de
chaque clic impair
<p>Hello</p> • pair (Fonction): fonction à éxécuter lors de
chaque clic pair
évènements: fonction select (fonction)
Exemple 1 : Basculer entre la couleur jaune et bleue
suite à un click
Associe une fonction à l'évènement de sélection pour $("p").click().toggle(function(){
chaque élément de la sélection. $(this).addClass("selected");
Exemple : },function(){
$(":text").select( function() { alert("Hello"); } ); $(this).removeClass("selected");
Code de test: });
<input type ="text" value="zone1" />
<style>
évènements: fonction submit
.selected {
• Submit() : Déclenche l'évènement d'envoi pour background-color:blue;
chaque élément de la sélection. }
29
RV ENI p. 30
})
p{ .click(function(){
background-color:yellow; $(this).after(' clic !');
} });
Zone1 Click ! click !
</style>
<script> Exemple 1:
$(document).ready(function(){ $("p").hide("slow");
$("button").click(function(){ Exemple 2:
$("#div1").fadeToggle(); $("p").hide("slow",function(){
$("#div2").fadeToggle("slow"); alert("Animation Done.");
$("#div3").fadeToggle(3000); });
});
}); effets: fonction show
</script>
</head> Show() :Affiche chque élement de la sélection si ils sont
<body> cachés.
<p>See the fadeToggle() method example with differen
t parameters.</p> Exemple :
<button>Click to fade Toggle boxes</button><br><br $("p").show()
> Code de test:
<div id="div1" style="width:80px;height:80px;backgrou <p style="display: none">Hello</p>
nd-color:red;"></div><br> Résultat:
<div id="div2" style="width:80px;height:80px;backgrou <p style="display: block">Hello</p>
nd-color:green;"></div><br>
<div id="div3" style="width:80px;height:80px;backgrou Show(speed,callback)
nd-color:blue;"></div> Affiche les les élements de la sélection en utilisant une
</body> animatio et permet de lancer une fonction à la fin de
l'opération de cache.
Visibilité
Paramétres:
• show() permet d'afficher les éléments en speed (Strong ou nombre): (optionnel) chaine de
question. caractères représentant une des trois vitesses
• hide() permet de cacher les éléments en prédéfinies ("slow","normal", ou "fast") ou le nombre en
question. millisecondes correspondant à la durée de l'animation.
• toggle() permet de jongler entre la présence ou callback (Fonction): (optionnel) fonction à éxécuter à la fin
l'absence de l'élément (si l'élément est caché, de l'animation.
l'afficher, sinon le cacher). Exemple 1:
$("p").show("slow");
effets: fonction hide
Exemple 2:
• Hide() $("p").show("slow",function(){
alert("Animation Done.");
Cache chaque élement de la sélection si ils sont });
affichés.
Exemple : Glissement
$("p").hide()
Code de test:
<p>Hello</p> • slideDown() permet de dérouler verticalement
Résultat: les éléments en question.
<p style="display: none">Hello</p> • slideUp() permet d'enrouler verticalement les
éléments en question.
• Hide(speed,callback) • slideToggle() permet de jongler entre la
Cache tous les élements en utilisant une animation et présence ou l'absence de l'élément (si
permet de lancer une fonction à la fin de l'opération de l'élément est caché, le dérouler, sinon
cache. l'enrouler).
32
RV ENI p. 33
millisecondes représentant la durée de
Affiche tous les élements sélectionnés selon un effet l'animation, ou alors "slow" (600
spécifique. Une fonction peut également être assignée millisecondes), "normal" (400 millisecondes)
et sera éxécutée après l'animation. qui est la valeur par défaut, ou enfin "fast" (200
Seulement la hauteur est ajustée pour cette animation, millisecondes).
les élements sélectionnées apparaissent à la manière 3. easing (chaîne de caractères) (évolution) :
d'un "glissement". détermine la façon dont les propriétés vont
changer au cours du temps : "swing" par
Paramétres: défaut, il y a aussi "linear".
speed (String ou entier): (optionnel) chaine de caractères 4. complete (fonction) (fonction de retour) : une
représentant une des trois vitesses prédéfinies fonction (peut bien sûr être anonyme ou une
("slow","normal", ou "fast") ou le nombre en variable) qui va être appelée quand
millisecondes correspondant à la durée de l'animation. l'animation d'un élément est finie. Elle va
callback (Fonction): (optionnel) fonction à éxécuter à la fin être appelée autant de fois qu'il y a d'éléments
de l'animation. concernés par l'animation.
Exemple 1: Exemple 1 :
$("p").slideDown("slow");
Code : JavaScript
Exemple 2:
$("p").slideDown("slow",function(){ // animation avec juste le style
alert("Animation Done."); $('p')
}); .css('width','400px')
effets: fonction slideUp .animate({
width : '500px'
Cache tous les élements sélectionnés selon un effet });
spécifique de "glissement". Une fonction peut
également être assignée et sera éxécutée après
// animation avec le style, la durée
l'animation.
<script type="text/javascript" src="
Seulement la hauteur est ajustée pour cette animation.
jquery.min.js"></script>
<script type="text/javascript">
Paramétres: $(document).ready(function(){
speed (String ou entier): (optionnel) chaine de caractères
représentant une des trois vitesses prédéfinies $("#go").click(function(){
("slow","normal", ou "fast") ou le nombre en $("#block").animate({
millisecondes correspondant à la durée de l'animation. width: "70%",
callback (Fonction): (optionnel) fonction à éxécuter à la fin opacity: 0.4,
de l'animation. marginLeft: "0.6in",
Exemple 1: fontSize: "3em",
$("p").slideUp("slow"); borderWidth: "10px"
}, 1500 );
Exemple 2: });
$("p").slideUp("slow",function(){ });
alert("Animation Done."); </script>
});
<style>
Animer des éléments
div {
Une animation jQuery est le changement du style background-color:#bca;
CSS d'un élément en un temps donné. width:100px;
animate() est une méthode qui permet d'animer le border:1px solid green;
style CSS de vos éléments ayant des propriétés }
numériques au cours du temps (exemple:
"height","top", ou "opacity" : entre 0 et 1). Vous pouvez </style>
animer les propriétés en utilisant les mesures em et % </head>
<body>
Méthode classique : plein d'arguments
<button id="go">» Run</button>
animate(style, [duration], [easing], [complete]) <div id="block">Hello!</div>
1. style (objet contenant des couples </body>
attribut/valeur CSS) obligatoire : le style de </html>
l'élément à la fin de l'animation.
2. duration (entier ou chaîne de caractères) // animation avec le style, la durée et l'évolution
(durée) : un entier positif qui est le nombre de $('p span').animate({
33
RV ENI p. 34
padding : '50px'
, opacity : 0.4 </style>
},'slow','linear'); </head>
<body>
// animation avec le style, la durée et la fonction de
retour pour augmenter la taille de l’élément <button id="go1">» Animate Block1</button>
$('p strong').animate({ <button id="go2">» Animate Block2</button>
fontSize : '2em' <button id="go3">» Animate Both</button>
, paddingLeft : '50px' <button id="go4">» Reset</button>
},2000,function(){ <div id="block1">Block1</div>
alert('fini ! '); <div id="block2">Block2</div>
}); </body>
</html>
Exemple 2:
Le premier bouton montre un exemple d'animation non
empilé : la première animation élargit le div à 90% Autres ajouts sur le style CSS dans animate()
pendant que la taille de la police (seconde animation)
est éxécutée. La troisième (élargissement de la Les valeurs des attributs CSS donnés à animate()
bordure), n'intervient quant à elle seulement une fois peuvent aussi être "show", "hide" ou encore "toggle".
que les deux autres sotn terminés , due au fait qu'elle
se trouve dans la pile d'éxécution des animations. Code : JavaScript
$('div.boite').animate({
Le second bouton déclenche une animation chainée width : 'toggle'
traditionnel, ou chaque animation attends que la , height : '200px'
précédente soit finie pour s'éxécuter. },5000);
on peut faire des animations avec les ascenseurs des Désactiver les animations
éléments ! En effet, il suffit de spécifier un attribut
scrollTop et / ou scrollLeft afin de faire défiler le Depuis la version 1.3, on peut désactiver toutes les
contenu de l'élément. animations ainsi que tous les effets avec la simple
Ceci ne marche qu'avec des éléments qui ont un ligne $.fx.off = true; (ou bien jQuery.fx.off = true; ).
ascenseur et qui peuvent défiler jusqu'au nombre de On peut réactiver les animations et les effets avec
pixels désiré. $.fx.off = false; .
<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").delay("fast").fadeIn();
$("#div2").delay("slow").fadeIn();
$("#div3").delay(1000).fadeIn();
$("#div4").delay(2000).fadeIn();
$("#div5").delay(4000).fadeIn();
});
});
</script>
</head>
<body>
<p>This example sets different speed values
for the delay() method.</p>
<button>Click to fade in boxes with a different
delay time</button>
<br><br>
<div id="div1"
style="width:90px;height:90px;display:none;backgroun
d-color:black;"></div><br>
<div id="div2"
style="width:90px;height:90px;display:none;backgroun
d-color:green;"></div><br>
<div id="div3"
style="width:90px;height:90px;display:none;backgroun
d-color:blue;"></div><br>
. <div id="div4"
style="width:90px;height:90px;display:none;backgroun
d-color:red;"></div><br>
<div id="div5"
style="width:90px;height:90px;display:none;backgroun
d-color:purple;"></div><br>
</body>
37