Fixer un élément en haut de page au scroll

Résolu/Fermé
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 - 7 oct. 2014 à 19:31
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 - 26 oct. 2014 à 00:41
Bonjour !
Je cherche à réaliser une entête, composée d'un bandeau, et en dessous d'un menu horizontal.
Au scroll, j'aimerai que le bandeau sorte de la page pour faire de la place, mais que le menu reste fixé en haut de page, pour qu'il soit toujours accessible.
J'ai su fixer toute l'entête en haut de page : http://codepen.io/Oluram/pen/yfbid , mais je ne sais pas comment faire pour que seule la partie menu se fixe (une fois qu'elle est en haut de page bien sûr)

Sauriez-vous m'aider ? Merci d'avance ! :)

6 réponses

telliak Messages postés 3667 Date d'inscription mercredi 20 septembre 2006 Statut Membre Dernière intervention 4 novembre 2024 876
8 oct. 2014 à 16:58
Quand tu fais défiler ce forum, il apparaît la flèche une flèche blanche sur un fond noir, fixe par rapport à l'écran dont le fonctionnement me paraît correspondre à ta question :
1
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
8 oct. 2014 à 19:58
Merci pour ta réponse, mais cette flèche ne correspond pas à ce que je souhaite faire.
Je pense que je me suis mal expliqué, donc j'ai fait ce schéma pour clarifier ce que je recherche : http://www.hostingpics.net/viewer.php?id=439456demobandeau.jpg
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
10 oct. 2014 à 14:33
salut
va voir cette page avec uniquement javascript + css
http://jsfiddle.net/AUsnL/
0
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
Modifié par canarder le 7/10/2014 à 19:33
Tu connais la propriété CSS position ?
EDIT : J'active pas JavaScript sur les sites inconnus.

___/\_canarder_/\___
~Waterfox|Palemoon~
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
7 oct. 2014 à 19:42
Oui, c'est ce que j'ai utilisé pour fixer mon entête.
J'aurais bien été tenté de mettre position : fixed; sur mon menu horizontal, mais elle serait toujours restée à son emplacement de départ (hors son emplacement de départ n'est pas le haut de la page).
Enfin j'imagine que ce n'est pas possible de se représenter ce que j'ai fait et ce que je veux comme résultat sans regarder ce que j'ai déjà fait.
Codepen est un site en lequel on peut avoir confiance je pense :)
0
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
Modifié par canarder le 7/10/2014 à 20:28
Et relative ?
J'utilise uniquement jsfiddle.
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
7 oct. 2014 à 20:59
Euh je ne vois pas comment faire ça avec relative.
Voilà le code sur jsfiddle :) http://jsfiddle.net/Oluram/v6jc1tvt/
0
telliak Messages postés 3667 Date d'inscription mercredi 20 septembre 2006 Statut Membre Dernière intervention 4 novembre 2024 876
8 oct. 2014 à 11:13
Salut,
Avec le débogueur de ton navigateur, tu peux analyser le pourquoi du comment de la flèche noire semi-transparente en haut à droite de la présente page...
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
8 oct. 2014 à 14:33
Bonjour,
La flèche noire ? Je ne vois pas du tout de quoi tu parles, ni le rapport avec ma question.
0
telliak Messages postés 3667 Date d'inscription mercredi 20 septembre 2006 Statut Membre Dernière intervention 4 novembre 2024 876
8 oct. 2014 à 16:59
vois réponse par ailleurs.
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
8 oct. 2014 à 19:02
Ah d'accord, je ne comprenais pas que tu parlais de cette page là :)
Je vais regarder, mais le comportement de la flèche ne n'est pas ce que je recherche pour mon menu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
Modifié par canarder le 8/10/2014 à 17:19
Voilà : http://jsfiddle.net/bgjvm6so/

J'ai utilisé z-index.

EDIT : J'ai inversé les blocs demandés, mais tu devrais corriger ça.

___/\_canarder_/\___
~Waterfox|Palemoon~
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
8 oct. 2014 à 19:51
Merci pour ton aide, mais le résultat n'est pas ce que je cherche. Je souhaite que le menu reste en haut de page (donc la deuxième partie, pas la première).
Si c'est de ça que tu parle quand tu dis que tu as inversé les blocs, désolé mais je ne vois pas comment faire (à vrai dire, je ne comprends pas pourquoi tu as utilisé des z-index, il me semble que le résultat est le même en les enlevant).
Je pense que je me suis mal expliqué. J'ai fait un schéma pour être bien clair dans le résultat que je veux : http://www.hostingpics.net/viewer.php?id=439456demobandeau.jpg
0
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
Modifié par canarder le 10/10/2014 à 22:18
Ah ok, j'ai compris, là je sais pas faire désolé. Si tu trouves un site avec cet effet, je peux t'aider à te le copier.
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
Modifié par animostab le 10/10/2014 à 15:27
Bon aller comme je suis gentil voila la solution (jquery)



<html>
<head>

<style type="text/css">
#top {
height:200px;
background:red;
width:100%;
}
#menu {
height:80px;
background:black;
width:100%;
}
.fixed {
position:fixed;
top:0;
left:0;
}
#page {
height:5000px;
background:yellow;
width:100%;
}
</style>

<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>

<script type="text/javascript" language="javascript">
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 200) {
$("#menu").addClass("fixed");
} else {
$("#menu").removeClass("fixed");
}
});
</script>

</head>
<body>

<div id="top"></div>
<div id="menu"></div>
<div id="page"></div>

</body>
</html>





Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
10 oct. 2014 à 16:08
Merci beaucoup pour tes deux réponses !
J'étais persuadé que c'était possible (et même simple) en CSS, et j'avoue que j'ai pas du tout pensé à le faire en JS (d'autant plus que j'aurais pas sû faire ce que tu as fait)
Du coup j'ai regardé ton code sur jsfiddle, et ça correspond bien à ce que je veux. Est-ce que le code en JQuery apporte un plus (autre que l'économie de lignes) ? Je demande parce que je débute et que je n'ai pas trop l'habitude du JQuery.
Encore merci d'avoir donné de ton temps pour m'aider ! :D
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
11 oct. 2014 à 14:55
le 2eme code marche pour ce que tu veux
je l'ai mis la
http://jsfiddle.net/0vo90sok/5/ pour que tu vois ce que ca donne

jquery et une bibliothèque qui permet de simplifier l'ecriture de javascript il ne faut pas oublier de l'appeller dans ta page
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
12 oct. 2014 à 12:26
Je ne vois pas quelle est la différence de rendu entre les deux codes.
Désolé, je n'ai pas encore eu le temps d'intégrer ça à mon site depuis la dernière fois, je m'en occupe aujourd'hui. Je reviendrai vers toi si j'ai des soucis dans l'intégration.
Merci encore !
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
12 oct. 2014 à 13:12
Dans le 1er code la barre qui se fixe sera toujours en bas de page au début
dans le 2eme elle est en dessous de la banière (rouge) dont tu peux définir la taille par css
#top {height:200px;

et le jquery fixe #menu à 200px de scroll
if (scroll >= 200)
0
Oluram Messages postés 64 Date d'inscription dimanche 16 décembre 2012 Statut Membre Dernière intervention 14 novembre 2020 2
12 oct. 2014 à 19:24
Ah d'accord, j'avais pas remarqué ça.
Tout s'est bien passé, merci beaucoup pour ton aide !
0