Images alternatives sur lien (script)

Par cet assistant, WebExpert 5 vous permet de créer des effets visuels par des images alternatives sur un lien (ou speudo-lien).

Pour lancer l'assistant, cliquez sur le bouton Images alternatives sur lien (script) de l'onglet Javascript...

1. Étapes de réalisation avec l'assistant

2. Exemple d'images alternatives sur lien

3. Script inséré par l'assistant

a) Dans la section <HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- debut du script
function VersionNavigateur(Netscape, Explorer) {
if ((navigator.appVersion.substring(0,3) >= Netscape && navigator.appName == 'Netscape') ||
(navigator.appVersion.substring(0,3) >= Explorer && navigator.appName.substring(0,9) ==
'Microsoft'))
return true;
else return false;
}
// fin du script --
</SCRIPT>

b) Endroit du curseur (corps du document)

<A HREF="fichier.html" TITLE="Exemple d'images alternatives sur lien" onMouseOver="if
(VersionNavigateur(3.0,4.0)) img1.src='b7.gif' " onMouseOut="img1.src='b1.gif' ">
<IMG NAME="img1" BORDER=0 WIDTH=20 HEIGHT=19 SRC="b1.gif" onLoad="tempImg=new Image(0,0);
tempImg.src='b7.gif'">
</A>

4. Explication des éléments du script

Le premier script devrait vous être familier, en ce sens que nous avons déjà parlé de ce genre de script, à savoir, une détection des navigateurs utilisés (section "Commandes javascript en bref" par exemple ou TutorDHTML).

Particularité du script

Fonction "VersionNavigateur" (<HEAD>)

La détection est effectuée par une fonction (pas une procédure) : rappelez-vous la différence entre les deux ! La fonction retourne une valeur ici true ou false par le mot-clé return.

Ne vous laissez pas troubler par le nom identique donné au premier paramètre de la fonction (Netscape) et au nom (Netscape) du navigateur détecté en premier lieu, qui reçoit comme valeur de version (3.0) dans la condition "if" de l'attribut de la balise du lien. cette fonction a pour but de vérifier des versions différentes pour Netscape et internet Explorer : en effet, ce changement d'image sur lien ne fonctionne pas pour les versions inférieures à 3.0 (Netscape) et 4.0 (Internet Explorer) ! Il fallait donc différencier le script, puisque les versions 3.0 et plus de Netscape peuvent interpréter la commande, tandis qu'il faut au moins une version 4.0 d'IE. Ici on aurait pu tout aussi bien écrire :

function VersionNavigateur(navig1, navig2) {
if ((navigator.appVersion.substring(0,3) >= navig1 && navigator.appName == 'Netscape') ||
(navigator.appVersion.substring(0,3) >= navig2 && navigator.appName.substring(0,9) == 'Microsoft'))
return true;
else return false;
}

L'opérateur logique ( || ) déjà expliqué dans les Notions Générales (OU dans beaucoup de langage) permet par une même condition de tester Netscape et son numéro de version autorisé ou Internet Explorer et son numéro de version accepté.

L'opérateur logique ( && ) effectue l'alternative entre les deux navigateurs. Quand le navigateur ne correspond pas à une version "autorisée", la fonction retourne false et dans le cas inverse, true.

Lien et condition dans le corps du document

À l'endroit où vous avez placé votre curseur, avant le lancement de l'assistant, est placé le lien "particulier", puisque celui-ci, en fonction des événements "onMouseOver" (curseur de la souris sur l'image) et "onMouseOut" (curseur en-dehors) change l'image qui est visionnée par l'utilisateur. Pourquoi "lien particulier" ? Parce, pour l'instant, Netscape ne reconnaît pas les événements que l'on vient de décrire, sur une image, mais bien sur un lien (ancre ou anchor) : donc, l'astuce pour que cela fonctionne pour les deux navigateurs est d'insérer ce code dans une ancre ! Nous verrons une variante à employer si vous ne désirez pas de lien réel interne ou vers une autre page...

La condition "if (VersionNavigateur(3.0,4.0))..." a pour objet de lancer la fonction "VersionNavigateur" (avec les paramètres Netscape = 3.0 et Explorer = 4.0) qui vérifie si la version du navigateur est compatible.

5. Modifications des paramètres

6. Variante

Voici un code qui vous permet de réaliser la même opération (images alternatives sur lien) mais sans vérification des versions des navigateurs (de moins en moins nécessaire car les utilisateurs possèdent de plus en plus des versions 4.x). L'avantage de cette variante est qu'elle ne rend pas obligatoire une fonction (script) supplémentaire au code inséré dans la balise de l'élément concerné :

<A HREF="fichier.html" onMouseOver="document.image.src = 'imagesurcurseur.gif'"
onMouseOut="document.image.src='imageavantcurseur.gif';" TITLE="Variante proposée...">
<IMG NAME="image" SRC="imageavantcurseur.gif" BORDER=0> </A>

Par contre, vous avez remarqué qu'il faut impérativement identifier l'image (NAME="image") pour que la commande fonctionne (image ou un autre nom bien sûr), voici l'effet réalisé de cette manière et spécifier donc sa référence dans le document par "document.image.src = ''" :

Code complet de la variante

<A HREF="javascript://" onMouseOver="document.image.src = 'b7.gif'"
onMouseOut="document.image.src='b1.gif'" TITLE="Variante proposée...">
<IMG NAME="image" SRC="b1.gif" BORDER=0 WIDTH=20 HEIGHT=19>
</A>



Cliquez sur le bouton du script pour visionner son explication...