Bloquer div au scroll

Résolu/Fermé
LaurentMtns Messages postés 261 Date d'inscription mardi 22 octobre 2013 Statut Membre Dernière intervention 22 mars 2017 - 20 sept. 2014 à 10:25
 moi - 17 déc. 2017 à 08:45
Bonjour, depuis quelques jours maintenant je tente de bloquer un rectangle en haut de ma page lorsque celui-ci y arrive.

Jusqu'à présent j'ai réussit à faire apparaître l'ombre (des que l'élément touche le haut du browser) via ce code JavaScript:
$(function () {
 
  var msie6 = $.browser == 'msie' && $.browser.version < 7;
 
  if (!msie6) {
    var top = $('#menu_haut').offset().top - parseFloat($('#menu_haut').css('margin-top').replace(300, 0));
    $(window).scroll(function (event) {
      // what the y position of the scroll is
      var y = $(this).scrollTop();
 
      // whether that's below the form
      if (y >= top) {
        // if so, ad the fixed class
        $('#menu_haut').addClass('fixed');
      } else {
        // otherwise remove it
        $('#menu_haut').removeClass('fixed');
      }
    });
  }  
});


et ce code CSS (sur une feuille à part):
#menu_haut {
	z-index:2;
	position: relative;
	margin-top:300px;
	margin-left:auto;
	margin-right:auto;
	max-width:1000px;
	height:80px;
	font-size:20px;
	background-color:#ebebeb;
}
.fixed {
	margin-left:auto;
	margin-right:auto;
	max-width:1000px;
	position: fixed;
	top: 0;
	margin-top: 0;
	z-index: 2;
	box-shadow: 0 5px 5px rgba(0,0,0,.5);
}


Voila le HTML du menu_haut:
<div id="menu_haut">
<table width="100%" height="100%" align="center">
	<tr>
		<td align="center">
			menu ici
		</td>
	</tr>
</table>
</div>


Bien que l'ombre apparaisse, l'élément ne reste pas fixer en haut de la page.

Merci de votre futur aide. ;-)

Bonne journée !
Laurent M.

1 réponse

mr_demonicon Messages postés 828 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 9 avril 2016 126
Modifié par mr_demonicon le 20/09/2014 à 16:56
mieux comme ça mais telecharge le jquery si tu veux l'utiliser (le jquery est non obligatoire mais le telecharger permet de charger plus rapidement la page et il permet pas mal d'option sur une page web dont la demo ici donc tu en aura besoin )

Ma source: https://desgeeksetdeslettres.com/web/menu-fixe-mais-flottant-selon-la-scrollbar-js-css
<html>
<head>
 <title>Menu fixe mais flottant</title>
 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
 
 <style type="text/css">
  #example {
   padding: 10px;
   background-color: #CCC;
   width: 950px;
  }
  
  #example.floatable {
   position: fixed;
   top: 0;
  }
 </style>
</head>
<body>
 
 <ul>
  <li>blabla</li><li>blabla</li><li>blabla</li><li>blabla</li><li>blabla</li>
 </ul>
 
 <p id="example">Mon texte fixe</p>
 
 <ul>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
  <li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li><li>bloblo</li>
 </ul>
 
 <script type="text/javascript">
  // listen for scroll
  var positionElementInPage = $('#example').offset().top;
  $(window).scroll(
   function() {
    if ($(window).scrollTop() >= positionElementInPage) {
     // fixed
     $('#example').addClass("floatable");
    } else {
     // relative
     $('#example').removeClass("floatable");
    }
   }
  );
 </script>
 
</body>
</html>

Bonne journee

Bonne continuation et n'oubliez pas le risque zéro c'est dans vos rêves.
2
LaurentMtns Messages postés 261 Date d'inscription mardi 22 octobre 2013 Statut Membre Dernière intervention 22 mars 2017 51
21 sept. 2014 à 13:03
Merci beaucoup ! J'ai utilisé ton code et ça marche parfaitement ;-)

Bonne journée !
Laurent M.
0
mr_demonicon Messages postés 828 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 9 avril 2016 126
21 sept. 2014 à 21:56
ben derien et bonne continuation
0
LaurentMtns Messages postés 261 Date d'inscription mardi 22 octobre 2013 Statut Membre Dernière intervention 22 mars 2017 51
24 sept. 2014 à 21:53
Merci !
0
Merci enormement!!!
0