Allan
29/01/2006, 15h31
"Créer un effet "Rollover" pour des boutons"
(par exemple)
C'est très simple, ce tuto vous aidera à créer un effet dit "Rollerver" ou plus souvent appeler "OnmouseOver" (Qui signifie: Au passage de la souris) qui change d'image au passage de la souris (voir la barre du dessus sur ce forum)
Aller, on commence ;)
Pour procéder, nous allons utiliser un javascript (merci à son auteur: Chris Poole, voici le lien (http://www.dynamicdrive.com/dynamicindex15/domroll.htm) ou l'on peut trouver son script en libre téléchargement)
Commencons par l'intégration de son script dans le template de vBulletin.
1- Dans le template "header", tous au début, ajouter le script:
<script type="text/javascript">
/************************************************** **
* DOM Image rollover:
* by Chris Poole
* http://chrispoole.com
* Script featured on http://www.dynamicdrive.com
* Keep this notice intact to use it :-)
************************************************** **/
function init() {
if (!document.getElementById) return
var imgOriginSrc;
var imgTemp = new Array();
var imgarr = document.getElementsByTagName('img');
for (var i = 0; i < imgarr.length; i++) {
if (imgarr.getAttribute('hsrc')) {
imgTemp[i] = new Image();
imgTemp[i].src = imgarr[i].getAttribute('hsrc');
imgarr[i].onmouseover = function() {
imgOriginSrc = this.getAttribute('src');
this.setAttribute('src',this.getAttribute('hsrc'))
}
imgarr[i].onmouseout = function() {
this.setAttribute('src',imgOriginSrc)
}
}
}
}
onload=init;
</script>
<script language="javascript">
<!--
if (document.images) {
image1on = new Image();
image1on.src = "images/dossier-de-votre-style/misc/votre-image_over.gif"; image1off = new Image();
image1off.src = "images/dossier-de-votre-style/misc/votre-image.gif";
}
function changeimages() {
if (document.images) {
for (var i=0; i<changeimages.arguments.length; i+=2) {
document[changeimages.arguments[i]].src = eval(changeimages.arguments[i+1] + ".src");
}
}
}
// -->
</script>
[I]ATTENTION:
Dans ce script, vous avez pu remarquer ces lignes (ces 4 lignes représente un bouton):
image1on = new Image();
image1on.src = "images/dossier-de-votre-style/misc/votre-image_over.gif";
image1off = new Image();
image1off.src = "images/dossier-de-votre-style/misc/votre-image.gif";
N'oublier pas de remplacer le chemin et le nom de vos images, l'image avec l'extension "_over" sera celle qui sera vu lors du passage de la souris !
Notez que: Vous pouvez ajouter d'autre bouton (images), il suffit d'ajouter les 4 lignes de codes a celle déja présente en prenant soin de remplacer le nom et le chemin de vos images.
2 - Ajouter ensuite vos images dans le templates voulu (souvent dans le template "Navbar")
Pour mon exemple, j'ai crée une barre (voir en haut du forum) ou j'ai ajouter mes images.
Cette partie est délicate pour les gens qui débute car il vous faut trouver l'endroit (ou le créer) ou mettre vos images. Une fois cela trouver, il vous suffit d'ajouter le code suivant:
<a href="http://www.votre-site.com/forum/chemin-de-la-page-qui-sera-ouverte-par-le-bouton" onmouseover="changeimages('image1', 'image1on')" onmouseout="changeimages('image1', 'image1off')"><img src="$stylevar/blabla.gif" name="image1" border="0" id="image1"></a>
[I]ATTENTION: Remplacer le chemin de la page ("http://www.votre-site.com/forum/chemin-de-la-page-qui-sera-ouverte-par-le-bouton") qui sera ouvert lors du clique sur le bouton ainsi que le nom de votre image ($stylevar/nom-de-l-image.gif)-(celle ou la souris ne passe pas !)
[I]Noter que: Vous remarquerez que le nom "image1" se répète souvent, cela correspond à l'ajout des images dans le script vue au dessus. Si vous avez ajouter d'autres boutons, le chiffre doit correspondre aux lignes de l'image ajouter dans le script du template "header"
Exemple:
Partie du script dans le template "header":
image1on = new Image();
image1on.src = "images/mon-style/misc/blabla_over.gif";
image1off = new Image();
image1off.src = "images/dmon-style/misc/blabla.gif";
Ce qui correspondra a:
Partie du code dans le template "navbar"
<a href="http://www.votre-site.com/forum/chemin-de-la-page-qui-sera-ouverte-par-le-bouton" onmouseover="changeimages('image1', 'image1on')" onmouseout="changeimages('image1', 'image1off')"><img src="$stylevar[imgdir_misc]/blabla.gif" name="image1" border="0" id="image1"></a>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
En gros, si vous ajouter des boutons, il faudra remplacer image1 par image2 et ainsi de suite (et n'oublier pas le chemin et le nom de l'image a changer également)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Voila, le résultat de ceci est visible sur toutes les pages de ce forum. (texte dans la barre bleue changeant quand vous passez la souris dessus) il ne vous reste plus qu'a créer vos images sous Photoshop par exemple)
* Bien sur, vous pouvez adapter des images ou du texte a volonté ;)
(par exemple)
C'est très simple, ce tuto vous aidera à créer un effet dit "Rollerver" ou plus souvent appeler "OnmouseOver" (Qui signifie: Au passage de la souris) qui change d'image au passage de la souris (voir la barre du dessus sur ce forum)
Aller, on commence ;)
Pour procéder, nous allons utiliser un javascript (merci à son auteur: Chris Poole, voici le lien (http://www.dynamicdrive.com/dynamicindex15/domroll.htm) ou l'on peut trouver son script en libre téléchargement)
Commencons par l'intégration de son script dans le template de vBulletin.
1- Dans le template "header", tous au début, ajouter le script:
<script type="text/javascript">
/************************************************** **
* DOM Image rollover:
* by Chris Poole
* http://chrispoole.com
* Script featured on http://www.dynamicdrive.com
* Keep this notice intact to use it :-)
************************************************** **/
function init() {
if (!document.getElementById) return
var imgOriginSrc;
var imgTemp = new Array();
var imgarr = document.getElementsByTagName('img');
for (var i = 0; i < imgarr.length; i++) {
if (imgarr.getAttribute('hsrc')) {
imgTemp[i] = new Image();
imgTemp[i].src = imgarr[i].getAttribute('hsrc');
imgarr[i].onmouseover = function() {
imgOriginSrc = this.getAttribute('src');
this.setAttribute('src',this.getAttribute('hsrc'))
}
imgarr[i].onmouseout = function() {
this.setAttribute('src',imgOriginSrc)
}
}
}
}
onload=init;
</script>
<script language="javascript">
<!--
if (document.images) {
image1on = new Image();
image1on.src = "images/dossier-de-votre-style/misc/votre-image_over.gif"; image1off = new Image();
image1off.src = "images/dossier-de-votre-style/misc/votre-image.gif";
}
function changeimages() {
if (document.images) {
for (var i=0; i<changeimages.arguments.length; i+=2) {
document[changeimages.arguments[i]].src = eval(changeimages.arguments[i+1] + ".src");
}
}
}
// -->
</script>
[I]ATTENTION:
Dans ce script, vous avez pu remarquer ces lignes (ces 4 lignes représente un bouton):
image1on = new Image();
image1on.src = "images/dossier-de-votre-style/misc/votre-image_over.gif";
image1off = new Image();
image1off.src = "images/dossier-de-votre-style/misc/votre-image.gif";
N'oublier pas de remplacer le chemin et le nom de vos images, l'image avec l'extension "_over" sera celle qui sera vu lors du passage de la souris !
Notez que: Vous pouvez ajouter d'autre bouton (images), il suffit d'ajouter les 4 lignes de codes a celle déja présente en prenant soin de remplacer le nom et le chemin de vos images.
2 - Ajouter ensuite vos images dans le templates voulu (souvent dans le template "Navbar")
Pour mon exemple, j'ai crée une barre (voir en haut du forum) ou j'ai ajouter mes images.
Cette partie est délicate pour les gens qui débute car il vous faut trouver l'endroit (ou le créer) ou mettre vos images. Une fois cela trouver, il vous suffit d'ajouter le code suivant:
<a href="http://www.votre-site.com/forum/chemin-de-la-page-qui-sera-ouverte-par-le-bouton" onmouseover="changeimages('image1', 'image1on')" onmouseout="changeimages('image1', 'image1off')"><img src="$stylevar/blabla.gif" name="image1" border="0" id="image1"></a>
[I]ATTENTION: Remplacer le chemin de la page ("http://www.votre-site.com/forum/chemin-de-la-page-qui-sera-ouverte-par-le-bouton") qui sera ouvert lors du clique sur le bouton ainsi que le nom de votre image ($stylevar/nom-de-l-image.gif)-(celle ou la souris ne passe pas !)
[I]Noter que: Vous remarquerez que le nom "image1" se répète souvent, cela correspond à l'ajout des images dans le script vue au dessus. Si vous avez ajouter d'autres boutons, le chiffre doit correspondre aux lignes de l'image ajouter dans le script du template "header"
Exemple:
Partie du script dans le template "header":
image1on = new Image();
image1on.src = "images/mon-style/misc/blabla_over.gif";
image1off = new Image();
image1off.src = "images/dmon-style/misc/blabla.gif";
Ce qui correspondra a:
Partie du code dans le template "navbar"
<a href="http://www.votre-site.com/forum/chemin-de-la-page-qui-sera-ouverte-par-le-bouton" onmouseover="changeimages('image1', 'image1on')" onmouseout="changeimages('image1', 'image1off')"><img src="$stylevar[imgdir_misc]/blabla.gif" name="image1" border="0" id="image1"></a>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
En gros, si vous ajouter des boutons, il faudra remplacer image1 par image2 et ainsi de suite (et n'oublier pas le chemin et le nom de l'image a changer également)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Voila, le résultat de ceci est visible sur toutes les pages de ce forum. (texte dans la barre bleue changeant quand vous passez la souris dessus) il ne vous reste plus qu'a créer vos images sous Photoshop par exemple)
* Bien sur, vous pouvez adapter des images ou du texte a volonté ;)