Fixer un élément sur la page Bouton_activeFixer un élément sur la page Bouton_hoverFixer un élément sur la page Fb-hoverFixer un élément sur la page Fb-active
CSSActif, le forum, n'est plus maintenu. Il est néanmoins disponible pour consultation. Pour des outils pratiques, rendez-vous sur:

Découvrez CSSActif, une collection d'outils et de tutoriels interactifs pour les développeurs Web — HTML, CSS, JavaScript et bien plus!

Derniers sujets
» Système d'onglets simple et personnalisable
Fixer un élément sur la page EmptyLun 03 Juin 2024, 17:20 par birds

» Fiche de Présentation RPG
Fixer un élément sur la page EmptySam 30 Mar 2024, 22:07 par Peyton972

» [RPG] Fiche personnage avec bannière
Fixer un élément sur la page EmptySam 30 Mar 2024, 22:06 par Peyton972

» Structure de Qui Est En Ligne (1)
Fixer un élément sur la page EmptyLun 04 Mar 2024, 23:20 par Peyton972

» Qui Est En Ligne - Utopia
Fixer un élément sur la page EmptyDim 24 Déc 2023, 18:16 par romee

» Pack forum complet "Androïd Sylver" RPU (N°2)
Fixer un élément sur la page EmptyJeu 02 Nov 2023, 06:42 par Hydrar

» Formulaire de connexion rapide amélioré
Fixer un élément sur la page EmptySam 04 Mar 2023, 18:57 par Krager

» Avatar centré dans le profil
Fixer un élément sur la page EmptySam 11 Fév 2023, 06:04 par Krager

Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

Partagez
 

Fixer un élément sur la page

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Espeon
Espeon
Administrateur
Administrateur

Masculin Messages : 1819



Fixer un élément sur la page Empty
Fixer un élément sur la page

Niveau: Facile | Par: Espeon | Validé par: Espeon | En date du: 21/02/11
Préambule

Dans ce tutoriel je vais vous montrer comment simplement fixer un élément sur votre page. Ce tutoriel fonctionnera aussi bien dans vos templates ForumActif que sur le web de manière générale.

En vérité, je vous mens un peu. Je vais vous montrer deux solutions :
  • La première - Elle est toute facile, simplissime même. C'est une astuce CSS.

  • La seconde - Elle est un peu plus complexe car il s'agit ici d'une solution Javascript. En revanche elle permettra à votre élément de suivre votre curseur, ce qui peut parfois se révéler utile. Mais ne vous inquiétez pas, je vous guide Wink

    En avant !

1 - Fixer un élément par le CSS

Principe

Ce que nous allons essayer de réaliser ici, c'est de fixer une bonne fois pour toute un élément sur la page. C'est à dire que l'élément en question (une phrase, une image, un bloc, ...) restera à la même place sur votre écran même si vous descendez/remontez dans la page.

Pour ceux qui ne visualisent pas bien, voici un exemple de page où le header et le footer sont fixés sur la page.

Attention

L'astuce CSS que nous allons voir est normalement compatible avec tous les navigateurs... Tous ? Non ! Un navigateur résiste encore et toujours à l'envahisseur aux règles CSS de base. Il s'agit d'Internet Explorer dans sa version 6 et autres antérieures.

Techniquement, le code fonctionne sous une version supérieure ou égale à 7. Normalement (de nos jours), la majorité des utilisateurs d'IE tournent sur une version au moins aussi récente que la 7 donc il ne devrait pas y avoir trop de soucis.

Je vous donne cependant le code qui fonctionne sous IE6 en spoiler, au cas où....

Réalisation - HTML

Pour fixer un élément, il faut déjà le cibler. Pour cela, on crée généralement une div et on lui donne un id. Au final, c'est la base du CSS, on crée des blocs et on les façonne !

Voici donc le code HTML, à placer dans votre page ou le template de votre choix (ça, ça dépend de l'endroit où vous souhaitez fixer votre bloc).

Code:
<div id="fixe">Blablabla ! Ce bloc va être fixé...</div>
Réalisation - CSS

Passons maintenant au CSS qui fixera le bloc que vous avez repéré par l'id "fixe". Il y a 3 choses à renseigner :
  • position: fixed; : C'est le code qui va dire à votre navigateur de fixer l'élément sur la page

  • top: Xpx; : Ce sera la position (ici en pixel) de votre bloc par rapport au haut de la page

  • left: Xpx; : Ce sera la position (ici en pixel) de votre bloc par rapport au bord gauche de la page

Avec ça, vous êtes en mesure de fixer votre élément et de le positionner sur la page (ce qui est non négligeable).
Ensuite, vous pouvez le styliser comme bon vous semble bien entendu (et en faire un cadre avec du contenu).

Code:
#fixe {
   /* On fixe le bloc */
   position: fixed;
   top: 100px;
   left: 10px;

   /* Style du bloc - Ici on va faire un bloc bleu de largeur 200px et de hauteur 400px */
   width: 200px;
   height: 400px;
   background-color: blue;

}
Spoiler:

2 - Fixer un élément par le Javascript (et lui faire suivre le curseur)

Réalisation - Javascript

Si maintenant fixer un élément ne vous suffit pas, mais que vous souhaitez qu'il suive le curseur, il va vous falloir faire un peu de Javascript.

Le code que je vais vous présenter est simplement à rajouter par dessus l'étape 1. Il vous faudra placer l'ensemble du code dans le HTML, de préférence entre les balises head.

Enfin, il faudra également modifier la balise body telle que je vous la donne (afin que le code fonctionne dès le chargement de la page et ce, dès que la souris bouge).

Code:
<script type="text/javascript">
function suivre() {
   // On récupère les coordonnées de la souris
   var x = event.clientX;
   var y = event.clientY;

   // Ecart par rapport à la souris (pour pouvoir positionner le bloc)
   var ecartX = 210;
   var ecartY = 50;

   // Redéfinition de la position du bloc
   document.getElementById('fixe').style.left = x-ecartX;
   document.getElementById('fixe').style.top = y-ecartY;

}
</script>
Code:
<body onMouseMove="suivre()">
Interprétation du code

Vous allez voir c'est pas si méchant Wink
Il s'agit ni plus ni moins d'une fonction que j'ai appelé suivre(). Lorsqu'elle est déclenchée, elle change la position de l'élément dont l'id est "fixe" pour la positionner près du curseur. C'est pour cela que je la déclenche onMouseMove dans le body (en gros, dès que la souris bouge).

Voici l'explication du code pour ceux que ça intéresse :
  • Première étape : On crée deux variables (x et y) qui représentent les coordonnées de la souris.

  • Deuxième étape : On crée deux variables (ecartX et ecartY) pour pouvoir écarter plus ou moins le bloc du curseur comme on veut.

  • Troisième étape : Enfin, on change la position de l'élément d'id "fixe" en changeant les variables top (axe y) et left (axe x).

Vous pouvez écarter plus ou moins le bloc en jouant sur les variables ecartX et ecartY du script. A vous de le faire comme bon vous semble !

Conclusion

Et bien voila, c'est tout ce que j'avais à vous apprendre ! Vous savez maintenant fixer un élément et vous avez un script pour que cet élément suivre votre curseur. Le script est assez simple, mais le rendu est fidèle à l'effet désiré (après on pourrait concevoir des scripts plus complexes pour un déplacement plus fluide... mais ce n'est pas le but de ce tutoriel Wink).

Si vous avez des questions, des remarques, des suggestions... n'hésitez surtout pas !
MessageSujet: Fixer un élément sur la page   Fixer un élément sur la page EmptyLun 21 Fév 2011, 18:38
Revenir en haut Aller en bas
http://www.i-love-harvard.com/
Kaiji
Kaiji
Blanche-Neige
Blanche-Neige

Féminin Messages : 5578



Fixer un élément sur la page Empty
FAQ


Q
Juste, où (exactement si possible) devons nous placer le HTML dans les template ?

R
Tu dois aller dans le template overall_footer et le placer juste avant la balise
Code:
</body>
à la fin du template


Pour toute question sur ce tutoriel, merci de poster une demande d'aide ici :
http://www.css-actif.com/f17-aide-css-xhtml
MessageSujet: Re: Fixer un élément sur la page   Fixer un élément sur la page EmptyLun 05 Déc 2011, 04:50
Revenir en haut Aller en bas
 

Fixer un élément sur la page

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

 Sujets similaires

-
» Fixer un élément sur la page (messages)
» Fixer/Défixer un élément
» Element de la page d'accueil sur bannière du forum...
» [résolu] problème pour fixer mes header
» Footer toujours en bas de page et à la largeur de la page

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
CSSActif :: Tutoriels de CSSActif :: ForumActif Pas à pas :: Le Reste-

Partenaires Or


← Page précédente   ↑ Aller en haut Copyright © CSSActif 2009 - 2013 Tous droits réservés
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit