LA PARTIE HTML
Rien de bien compliqué, il s'agit de l'insertion simple d'une image avec comme class CSS "light" pour un affichage sans transition et light1 pour un affichage avec fondu
CODE HTML
<!DOCTYPE html>
<html>
<head>
<title>OPACITY</title>
</head>
<body bgcolor="#24292D">
AVEC CSS
<img class="light" src="ttm.png" alt="" /><br /><br />
AVEC ANIMATE<br />
<img class="light1" src="ttm.png" alt="" />
</body>
</html>
LA PARTIE CSS
CODE CSS
body {
margin-right:0;
margin-left:0;
color:#fff;
}
.light{
opacity:0.2;
/* Pour afficher l'opacité sous IE lors du chargement de la page
Ensuite c'est jQuery qui prend la relève */
filter : alpha(opacity=20);
}
.light1{
opacity:0.2;
/* Pour afficher l'opacité sous IE lors du chargement de la page
Ensuite c'est jQuery qui prend la relève */
filter : alpha(opacity=20); // POUR IE
}
LA PARTIE JQUERY
Nous allons utiliser .mouseover et .mouseout pour effectuer l'effet recherché.
CODE JAVASCRIPT
/* Lorsque que la souris est sur une image qui a la class CSS light */
$("img.light").mouseover(function(){
/* On utilise "this" pour que SEUL l'élément ou se trouve la souris soit impacté
Si nous avions mis $("img.light")... toutes les images ayant la class light auraient été impactées.*/
$(this).css({"opacity":"1"});
});
/* Lorsque la souris sort du survol on réaffiche l'opacité à 20 % */
$("img.light").mouseout(function(){
$(this).css({"opacity":"0.2"});
});
/* Ci-dessous pour un effet de fondu, on utilise .animate() à la place de .css() */
$("img.light1").mouseover(function(){
$(this).animate({"opacity":"1"});
});
$("img.light1").mouseout(function(){
$(this).animate({"opacity":"0.2"});
});
INFORMATION COMPLEMENTAIRE
Dans notre exemple ci-dessus nous agissons sur une image mais vous pouvez également interagir sur un bloc div, ainsi tout le contenu de ce bloc serait impacté.
CODE JAVASCRIPT
$("div.light1").mouseover(function(){
$(this).animate({"opacity":"1"});
});
$("div.light1").mouseout(function(){
$(this).animate({"opacity":"0.2"});
});
UTILISER .hover A LA PLACE ?
Lors de l'utilisation un peu plus poussée de .mouseover et .mouseout j'ai rencontré des comportements assez étonnants, surtout concernant le .mouseout.
De ce fait je recommande d'utiliser .hover à la place qui a pour syntaxe
CODE JAVASCRIPT
$("img").hover(lors du survol, sortir du survol);
Vous constatez qu'avec .hover on intégre directement l'état lors du survol et celui en sorti de survol
Pour vous donnez un exemple j'utiliserai le même qu'avec .mouseover et .mouseout de ce cours
CODE JAVASCRIPT
$("img").hover(
function () {
$(this).css({"display":"block", "opacity":"0.5"});
},
function () {
$(this).css({"display":"none"});
}
);
Pour information .hover est un condensé de $(selecteur).mouseenter(handlerIn).mouseleave(handlerOut);