J'essaie de faire bouger ma barre de navigation avec la page mais de rester en haut si l'utilisateur fait défiler l'écran Quelqu'un pourrait-il donner des exemples ou comment? Très appréciée. (Je suis sans espoir dans une autre langue). J'ai essayé d'utiliser le css collant mais cela n'a pas fonctionné.
<div class="headercss">
<div class="headerlogo"></div>
<div class="nav">
<ul>
<li><a href="#home"> <br>BLINK</a></li>
<li><a href="#news"><br>ADVERTISING WITH BLINK</a></li>
<li><a href="#contact"><br>EDUCATING WITH BLINK</a></li>
<li><a href="#about"><br>ABOUT US</a></li>
</ul>
</div>
</div>
/* www..com
Blinx Service
Created by Pierre Chedraoui
(c) Copyright 2015
*/
/* BODY */
body {
margin: 0px;
background-color: #000000;
height: 2000px;
}
/* 1. HEADER */
.headercss {
width: auto;
height: 320px;
background-color: #000000;
position: relative;
}
.headerlogo {
width: auto;
height: 250px;
background-color: #272727;
position: relative;
}
.nav {
width: auto;
height: 70px;
background-color: #272727;
position: relative;
overflow: hidden;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
float:left;
width:100%;
overflow: hidden;
}
li {
float: left;
width:25%;
min-width: 243px;
overflow: hidden;
}
a:link, a:visited {
display: block;
height: 68px;
min-width: 243px;
font-size: 12px;
color: #FFFFFF;
border-right: 1px solid #000000;
border-top: 1px solid #000000;
background-color: #272727;
text-align: center;
text-decoration: none;
font-family: 'Raleway', Arial;
letter-spacing: 2pt;
line-height: 200%;
overflow: hidden;
}
a:hover, a:active {
background-color: #242424;
}
$(document).ready(function() {
$(window).scroll(function () {
//if you hard code, then use console
//.log to determine when you want the
//nav bar to stick.
console.log($(window).scrollTop())
if ($(window).scrollTop() > 280) {
$('#nav_bar').addClass('navbar-fixed');
}
if ($(window).scrollTop() < 281) {
$('#nav_bar').removeClass('navbar-fixed');
}
});
});
html, body {
height: 4000px;
}
.navbar-fixed {
top: 0;
z-index: 100;
position: fixed;
width: 100%;
}
#body_div {
top: 0;
position: relative;
height: 200px;
background-color: green;
}
#banner {
width: 100%;
height: 273px;
background-color: gray;
overflow: hidden;
}
#nav_bar {
border: 0;
background-color: #202020;
border-radius: 0px;
margin-bottom: 0;
height: 30px;
}
.nav_links {
margin: 0;
}
.nav_links li {
display: inline-block;
margin-top: 4px;
}
.nav_links li a {
padding: 0 15.5px;
color: #3498db;
text-decoration: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="banner">
<h2>put what you want here</h2>
<p>just adjust javascript size to match this window</p>
</div>
<nav id='nav_bar'>
<ul class='nav_links'>
<li><a href="url">Nav Bar</a></li>
<li><a href="url">Sign In</a></li>
<li><a href="url">Blog</a></li>
<li><a href="url">About</a></li>
</ul>
</nav>
<div id='body_div'>
<p style='margin: 0; padding-top: 50px;'>and more stuff to continue scrolling here</p>
</div>
ajouter à votre css .nav bloquer le
position: fixed
et ça va marcher
J'espère que cela peut aider quelqu'un. Déterminez le décalage de nav par le biais de js puis appliquez le css position collante au nav:
Mais d'abord, nous allons définir les styles dans la feuille de style, comme suit.
.sticky {
position: fixed;
width: 100%;
left: 0;
top: 0;
z-index: 100;
border-top: 0;
}
Ensuite, nous appliquerons cette classe à la navigation de manière conditionnelle avec jQuery.
$(document).ready(function() {
var stickyNavTop = $('.nav').offset().top;
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('.nav').addClass('sticky');
} else {
$('.nav').removeClass('sticky');
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});
CSS:
.headercss {
width: 100%;
height: 320px;
background-color: #000000;
position: fixed;
}
L'attribut position: fixed
le maintiendra bloqué, tandis que les autres contenus pourront défiler. N'oubliez pas de définir width:100%
pour le remplir complètement à droite.
Il suffit d’utiliser la propriété CSS z-index
telle que décrite dans la réponse préférée la plus élevée et la barre de navigation reste en haut.
Exemple :
<div class="navigation">
<nav>
<ul>
<li>Home</li>
<li>Contact</li>
</ul>
</nav>
.navigation {
/* fixed keyword is fine too */
position: sticky;
top: 0;
z-index: 100;
/* z-index works pretty much like a layer:
the higher the z-index value, the greater
it will allow the navigation tag to stay on top
of other tags */
}
Donne la position de tête fixe.
.headercss {
width: 100%;
height: 320px;
background-color: #000000;
position: fixed;
top:0
}
Donnez ensuite au conteneur de contenu un padding-top de 320px afin qu’il ne passe pas derrière l’en-tête.
Vous pouvez le faire avec CSS uniquement en créant votre menu deux fois. Ce n’est pas idéal mais cela vous donne l’opportunité d’avoir un design différent pour le menu une fois qu’il est au-dessus et vous n’avez rien d’autre que CSS, pas de jquery… NAV si vous préférez):
<div id="hiddenmenu">
THIS IS MY HIDDEN MENU
</div>
<div id="header">
Here is my header with a lot of text and my main menu
</div>
<div id="body">
MY BODY
</div>
Et puis avoir le CSS suivant:
#hiddenmenu {
position: fixed;
top: 0;
z-index:1;
}
#header {
top: 0;
position:absolute;
z-index:2;
}
#body {
padding-top: 80px;
position:absolute;
z-index: auto;
}
Voici un violon à voir: https://jsfiddle.net/brghtk4z/1/
Je recommanderais d'utiliser Bootstrap. http://getbootstrap.com/ . Cette approche est très simple et légère.
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-fixed-top">
<li><a href="#home"> <br>BLINK</a></li>
<li><a href="#news"><br>ADVERTISING WITH BLINK</a></li>
<li><a href="#contact"><br>EDUCATING WITH BLINK</a></li>
<li><a href="#about"><br>ABOUT US</a></li>
</ul>
</div>
</div>
</div>
Vous devez inclure le Bootstrap dans votre projet, qui inclura les scripts et les styles nécessaires. Ensuite, appelez simplement la classe 'navbar-fixed-top'. Ça fera l'affaire. Voir l'exemple ci-dessus
/* Add css in your style */
.sticky-header {
position: fixed;
width: 100%;
left: 0;
top: 0;
z-index: 100;
border-top: 0;
transition: 0.3s;
}
/* and use this javascript code: */
$(document).ready(function() {
$(window).scroll(function () {
if ($(window).scrollTop() > ) {
$('.headercss').addClass('sticky-header');
} else{
$('.headercss').removeClass('sticky-header');
}
});
});
Appelez simplement ce code et appelez-le sur votre barre de nef pour obtenir une barre de navigation collante.
.sticky {
/*css for stickey navbar*/
position: sticky;
top: 0;
z-index: 100;
}
Pour rendre l’en-tête collant, vous devez d’abord donner la position: fixed; pour en-tête en css. Ensuite, vous pouvez ajuster la largeur et la hauteur, etc. Je vous recommande vivement de suivre cet article. Comment créer un en-tête de site Web collant
Voici du code pour contourner l’en-tête pour le rendre collant.
header {
position: fixed;
right: 0;
left: 0;
z-index: 999;
}
Ce code ci-dessus ira dans votre fichier styles.css.