School of Pub, où la perfection est à la portée de chacun. (Dixit Audidounette)

AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

 


Partager | 
 

 [forumactif]Faire une en-tête sous forme d'onglets

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
 

Miettes

Directrice

Voir le dossier scolaire

Directrice

Féminin Rang spécial: Designer professionnelle, formatrice analystes, codeurs, admins, animateurs, graphistes (photoshop, gimp)
Marraine

Rédactrice en chef du M-SoP

Chroniqueuse de l'émission de SoP

Nombre de messages: 44215
Age: 24
Localisation: Lille
$ops: 21138
Points: 505
Date d'inscription: 01/02/2008
Distinctions: Membre de l'EST-SoP
*** Co-Rédactrice en Chef du M-SoP ***

 
MessageSujet: [forumactif]Faire une en-tête sous forme d'onglets   Ven 31 Déc - 17:52

Bonjour à tous Smile

Dans ce tutoriel, nous allons apprendre à faire un message d'en-tête à onglet de ce type Smile




Pour ce tutoriel, vous allez avoir besoin :
-> d'un logiciel de graphisme
-> d'un logiciel de traitement de texte (pour rédiger votre code)
-> d'avoir accès aux templates de votre forum
-> d'avoir accès aux pages html de votre forum


Partie 1 :: je crée mes différents onglets sous forme d'image.



Et oui, c'est la base. Pour ce tutoriel, je vais faire simple (on ne s'occupe pas de l'aspect graphique mais bel et bien du codage ^^)

4 Onglets :
onglet1:
 

onglet2:
 

onglet3:
 

onglet4:
 


J'aurais donc ces 4 onglets à coder

Partie 2 :: j'enregistre mes images



Maintenant qu'on connait la structure, il faut enregistrer les images dont on va avoir besoin :

les boutons de navigation:
 


les boutons de navigation survolés:
 


les images de fond des onglets:
 


Partie 3 :: je prépare mon code html



1/ On va commencer par coder chaque onglet séparemment en les mettant dans un span qui se nommera onglet Smile on aura donc :

Code:
<span class="onglet">le code de mon onglet</span>


2/ Maintenant, on ajoute l'image de navigation Smile Pour cela on va la mettre dans une div nommé navigation

Code:
<div class="navigation">Le code de mon image sera là</div>


On va ajouter une petite subtilité ici Smile Quand on va passer la souris sur l'image, celle-ci va changer. Pour cela, on va utiliser du javascript simple :

Code:
<img src="lien de mon image normal" onMouseOver="this.src ='lien de mon image quand survolée';" onMouseOut="this.src = 'lien de mon image normal';" alt="mon onglet" />


Essayons de comprendre un peu ce code :

-> onMouseOver = quand la souris est dessus
-> onMouseOut = quand la souris s'en va
-> this.src = le "this" correspond à "l'élement sur lequel est ma souris" et le "src" correspond au SRC de l'image. Donc en gros, on dit, je vais rempalce le contenu du src de cette image.

Donc si on assemble le tout on aura ça pour les boutons des onglets :

Code:
<div class="navigation"><img src="lien de mon image normal" onMouseOver="this.src ='lien de mon image quand survolée';" onMouseOut="this.src = 'lien de mon image normal';" alt="mon onglet" style="les propriétés de l'image" /></div>


3/ Je code maintenant le contenu de mon bloc et pour cela, je le mets dans une div nommé "bloc_texte" et je lui donne un nom bien précis pour travailler le style

Code:
<div class="bloc_texte" id="numero de l'onglet">mon contenu sera là</div>


Donc si on se résume, chaque onglet sera fait de cette façon :

Code:
<span class="onglet">
   <div class="navigation"><img src="lien de mon image normal" onMouseOver="this.src ='lien de mon image quand survolée';" onMouseOut="this.src = 'lien de mon image normal';" alt="mon onglet" style="les propriétés de l'image" /></div>
   
   <div class="bloc_texte" id="numero de l'onglet">mon contenu sera là</div>
</span>


Alors au boulot, codons chaque onglet séparamment. Nous avons donc cette page html ci :

Spoiler:
 


Partie 4 :: Ajoutons un peu de CSS



Ici, je ne vous donnerai que la base. A vous de personnaliser chaque onglet ensuite Wink

1/ Pour faire en sorte que les boutons de navigation et les onglets se mettent bien les uns à la suite des autres, il faut utiliser ce code :

Code:
span.onglet{
  float:left;
  }
 
 span.onglet img:hover{
  cursor:pointer;
  }

#en_tete  .bloc_texte{ 
  position:absolute;
  margin-top:0;
  }


On bloque donc chaque span qui s'apelle "onglet" à gauche.

2/ Maintenant, on va correctement placer nos onglets. Pour cela, on va donner une largeur (width) ainsi qu'une position centrée à nos "bloc_texte"

Code:
#en_tete  .bloc_texte{ 
  position:absolute;
  margin-top:0;
  width:800px;
  margin-left:50%;
  left: -400px; /* ceci correspond à la - (largeur / 2) */
  }



3/ Ensuite, on va ajouter des propriétés à chaque onglet : le fond, la hauteur minimale ...

>> onglet 1 :

Spoiler:
 


>> onglet 2 :

Spoiler:
 


>> onglet 3 :

Spoiler:
 


>> onglet 4 :

Spoiler:
 


3/ Autant préparer ça tout de suite, on va insérer le CSS dans notre code html. Pour cela, nous allons placer des balises
Code:
<style>

...

</style>


dans le head de la page. Ces balises style comprendront tous le CSS. Au final, nous avons donc cette page html :

Spoiler:
 


Partie 5 :: je fais mon code javascript



Ohh vous allez voir comme il est court Smile

Tout d'abord, on va appeler la bibliothéque jquery dans notre page html. Pour cela, il vous suffit de copier/coller ceci juste après les balises head de votre page.

Code:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>


Ensuite, on va appeler le script déclancheur des onglets de cette façon :

Code:
<script type="text/javascript" src="http://www.pvereecken.fr/Tuto_SoP/tuto_entete_onglet/js_onglet.js"></script>


Voici ce que contient ce code :

Code:
jQuery().ready(function(){
  $(".bloc_texte").hide();
  $("#onglet1").show();
  $(".navigation").click(function(){
      if($(this).next("div").is(":hidden")){                   
        $(".navigation").next("div:visible").hide();
        $(this).next("div").show();
      }
  }); 
});


Essayons de le décortiquer un peu Smile

Code:
jQuery().ready(function(){

>> la fonction se lance dès l'ouverture de la page html

Code:
$(".bloc_texte").hide();
  $("#onglet1").show();

>> On cache (hide) toutes les divs qui ont pour class "bloc_texte" . En revanche, on affiche (show) la div qui a pour id "onglet1"

Code:
  $(".navigation").click(function(){

>> On fait une fonction qui se déclanche quand on clique sur un bouton qui fait partie d'un bloc s'appelant "navigation"

Code:
if($(this).next("div").is(":hidden")){

>> Si la div qui suit le bouton sur lequel j'ai cliqué ( $(this).next("div") ) est caché (hide)

Code:
 $(".navigation").next("div:visible").hide();
        $(this).next("div").show();

>> alors je cache toutes les divs qui sont après un bloc "navigation"
>> et j'affiche la div qui suit le bouton navigation sur lequel je viens de cliquer.

Facile hein ? Smile

Donc vous devez avoir ça dans votre page html, juste avant la balise fermante "head"

Code:
   </style>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://www.pvereecken.fr/Tuto_SoP/tuto_entete_onglet/js_onglet.js"></script>
</head>


Partie 6 :: je place mon en-tête sur mon forum


*** Pour les forums sous ForumActif ***


1/ On va d'abord créer la page html qui va contenir notre en-tête. Pour cela, on fait : Panneau d'admin > Modules >> HTML >> gestion des pages html. Là vous créez une nouvelle page et vous y copier votre code.

Spoiler:
 


2/ On va maintenant appeler cette page pour faire notre en-tête Smile Pour cela, reprérez bien l'adresse de votre page.

Spoiler:
 


Ensuite, on va utiliser les iframes (si vous ne savez pas ce que c'est, je vous invite à lire [ce tutoriel]). Notre iframe aura cette tête :

Code:
<iframe name="En tete" src="http://test-miettes.exprimetoi.net/h4-en-tete" scrolling="no" height="450px" width="900px" align="center" frameborder="0" allowtransparency="yes" ></iframe>


Il ne nous reste plus qu'à copier ce code dans : Panneau d'admin >> Affichage >> Page d'accueil >> Généralité et le tour est joué Wink




Voilà, vous pouvez dès à présent réaliser un beau message d'en-tête digne d'un pro Wink

Si vous avez des questions, remarques, problèmes, n'hésitez pas à cliquer sur répondre Wink

[Si vous avez un soucis, n'hésitez pas à venir poser vos questions par ici]


Dernière édition par Bowser le Dim 10 Avr - 21:31, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://pvereecken.fr/
 

[forumactif]Faire une en-tête sous forme d'onglets

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
School of Pub :: Les cours :: Tutoriels :: Informatique :: Gestion d'un forum-


Aller en haut
Aller en bas