Bonjour à tous,
Ayant créé un site internet et après l'avoir soumis aux critiques ici sur le forum, http://forum.alsacreations.com/topic-18-46399-1-Site-de-restaurant-italien-mon-premier-site--httpgiardiniitaliach.html, je voudrais effectuer un hover sur les liens du menu ceci pour garantir l'accessibilité de mon site .
J'ai commencé à lire ce post : http://www.alsacreations.com/tuto/lire/562-bonnes-pratiques-javascript.html et j'y ai trouvé un exemple de rollover qui fonctionne également avec la navigation au clavier .
Je l'ai étudié, je pense compris, mais il y a un point qui n'est pas clair.
Il s'agit du script suivant :
J'ai été dans la source de la page, et j'ai remarqué que le script utilisé pour l'exemple était légèrement différent :
On peut voir que les lignes
Si je reprends le deuxième script, donc celui provenant du code source de la page, donc de l'exemple, voilà ce que je comprends :
- On créé tout d'abord un lien en code html et lui attribuera l'ID test .
- On écris le script javascript, je me suis posé la question de la raison pour laquelle l'appelle de la fonction est placée après le script en lui-même, mais en fait j'imagine, en toute logique, que c'est pour faire en sorte que le script soit lu par le navigateur avant que la fonction ne soit appelée.
- Le navigateur sait maintenant que si le curseur de la souris ou un déplacement par clavier intervient sur le lien qui comporte l'identifiant test, qu'il doit agir en conséquence .
Par contre, je ne comprends pas l'utilité du terme function () dans la ligne suivante :
Merci beaucoup de votre aide .
Modifié par marc.suisse (04 Feb 2010 - 10:56)
Ayant créé un site internet et après l'avoir soumis aux critiques ici sur le forum, http://forum.alsacreations.com/topic-18-46399-1-Site-de-restaurant-italien-mon-premier-site--httpgiardiniitaliach.html, je voudrais effectuer un hover sur les liens du menu ceci pour garantir l'accessibilité de mon site .
J'ai commencé à lire ce post : http://www.alsacreations.com/tuto/lire/562-bonnes-pratiques-javascript.html et j'y ai trouvé un exemple de rollover qui fonctionne également avec la navigation au clavier .
Je l'ai étudié, je pense compris, mais il y a un point qui n'est pas clair.
Il s'agit du script suivant :
[code=javascript]<a href="#" id="test">lien test</a>
<script type="text/javascript"><!--
// Rollover sur un élément
function fnRollOver(sId, sCSS, sOverCSS)
{
// Test de la méthode utilisée
if(!document.getElementById) return;
// Identification de l'élément
var oElem = document.getElementById(sId);
if(!oElem) return;
// Définition de la classe CSS d'origine
oElem.className = sCSS;
// Comportement au survol ou à la prise du focus
oElem.onmouseover = function() { oElem.className = sOverCSS; };
oElem.onfocus = function() { oElem.className = sOverCSS; };
// Retour à l'état d'origine
oElem.onmouseout = function() { oElem.className = sCSS; };
oElem.onblur = function() { oElem.className = sCSS; };
}
// Lancement de la fonction fnRollOver()
fnRollOver('test', 'CSS', 'OverCSS');
//--></script>
J'ai été dans la source de la page, et j'ai remarqué que le script utilisé pour l'exemple était légèrement différent :
[code=javascript]<a href="#" id="test">lien test</a><script type="text/javascript"><!--
function fnRollOver(sId, sCSS, sOverCSS)
{
if(!document.getElementById) return;
var oElem = document.getElementById(sId);
if(!oElem) return;
oElem.style.color = sCSS;
oElem.onmouseover = function() { oElem.style.color = sOverCSS; };
oElem.onfocus = function() { oElem.style.color = sOverCSS; };
oElem.onmouseout = function() { oElem.style.color = sCSS; };
oElem.onblur = function() { oElem.style.color = sCSS; };
}
fnRollOver('test', '#4D98DC', '#F90');
//--></script>
On peut voir que les lignes
[code=javascript]oElem.className = sCSS;
et [code=javascript]oElem.style.color = sCSS;
sont différentes, pourquoi ? Si je reprends le deuxième script, donc celui provenant du code source de la page, donc de l'exemple, voilà ce que je comprends :
- On créé tout d'abord un lien en code html et lui attribuera l'ID test .
- On écris le script javascript, je me suis posé la question de la raison pour laquelle l'appelle de la fonction est placée après le script en lui-même, mais en fait j'imagine, en toute logique, que c'est pour faire en sorte que le script soit lu par le navigateur avant que la fonction ne soit appelée.
- Le navigateur sait maintenant que si le curseur de la souris ou un déplacement par clavier intervient sur le lien qui comporte l'identifiant test, qu'il doit agir en conséquence .
Par contre, je ne comprends pas l'utilité du terme function () dans la ligne suivante :
[code=javascript]oElem.onmouseover = function() { oElem.style.color = sOverCSS; };
Merci beaucoup de votre aide .
Modifié par marc.suisse (04 Feb 2010 - 10:56)