ある一定の場所まできたらナビゲーションを上部に固定する

なんだか最近あつくなったり寒くなったりなんなんでしょうね…
自律神経がおかしくなって体調崩す方も多いそうなので、みなんさもお気をつけください。

今回は『ある一定の場所まできたらナビゲーションを上部に固定する』方法です。
これ、めちゃ初期のころやるやつなんですけど、結構つまずいた記憶があって…
普通にスクロースしたらナビゲーション固定はできるのに、キービジュアルのしたにナビゲーションがある場合だと
うまくいかなかったりしたので備忘録的にかいておきます。

まずは実装から!

See the Pen ある一定の場所まできたらナビゲーションを上部に固定する by sayuri (@giraffeweb) on CodePen.0

ソースはいたって簡単!

<div id="key_wrap">
<div class="key fotorama">
<img src="https://creatornote.nakweb.com/wp-content/themes/giraffe/images/cssfullslide/slide01.jpeg" alt="key">
<img src="https://creatornote.nakweb.com/wp-content/themes/giraffe/images/cssfullslide/slide03.jpeg" alt="key">
<img src="https://creatornote.nakweb.com/wp-content/themes/giraffe/images/cssfullslide/slide05.jpeg" alt="key">
</div>
<!-- キービジュアル -->
</div>

<header>
<nav class="nav">
<div class="inner">
<div class="menu">
<ul class="main_menu flexbox fww">
	<li><a href="#">menu01</a></li>
	<li><a href="#">menu02</a></li>
	<li><a href="#">menu03</a></li>
	<li><a href="#">menu04</a></li>
	<li><a href="#">menu05</a></li>
</ul>

</div>
</div>
</nav>
</header>
<!-- header -->

<section class="wrap">
  <div class="box box01">box01</div>
   <div class="box box02">box02</div>
   <div class="box box03">box03</div>
</section>
* {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
}

a {
  text-decoration: none;
}


.inner{
  width:96%;
  padding:0 2%;
  max-width:1280px;
  margin:auto
}

.fixed{
  position:fixed;
  top:0;
  width:100%;
  z-index:10000
}

header{
  background-color:#fff;
  width:100%;
  clear:both;
  border-bottom:1px solid #ddd
}

#sub_header{
  width:96%;
  overflow:hidden;
  margin:auto;
  padding:10px 0;
  clear:both
}

.nav ul li a{justify-content:center}

.nav .main_menu>li{
  text-align:center;
  padding:10px 0}

.menu{width:100%}

.menu div{align-self:center}

.main_menu{
  width:100%;
}
.nav ul.main_menu>li {
  flex: 2;
}

.main_menu li a:hover{color:#E48F15}


.key{
  clear:both;
  width:100%;
  margin:auto;
  position:relative;
  padding-top:2px;
}

.key:before{
  content:"";
  display:block;
  position:absolute;
  top:0;
  left:0;
  overflow:hidden;
  width:100%;
  height:2px;
  background:-webkit-linear-gradient() to right,#24c6dc,#1b7ab7;
  background:-o-linear-gradient() to right,#24c6dc,#1b7ab7;
  background:linear-gradient() to right,#24c6dc,#1b7ab7;
  background:-webkit-linear-gradient() to right,#24c6dc,#1b7ab7;
  background:-o-linear-gradient() to right,#24c6dc,#1b7ab7;
  background:linear-gradient() to right,#24c6dc,#1b7ab7
}

.fotorama__nav-wrap{
  position:absolute;
  bottom:10px;
  left:0;
  z-index:30
}

.fotorama__dot{
  display:block;
  width:6px;
  height:6px;
  position:relative;
  top:12px;
  left:6px;
  border-radius:6px;
  border:1px solid #fff
}

.fotorama__nav__frame.fotorama__active .fotorama__dot{
  border-width:4px
}

.flexbox {
  display: flex;
}

.wrap {
  width: calc(100% - 80px);
  height: 300vh;
  background-color: #ddd;
  padding: 40px
}

.box {
  background-color: #bbb;
  padding: 200px 0;
  text-align: center;
  margin-bottom: 60px;
}
$(function () {
window.onload = function() {
  var topbar = $("header").offset().top;

  $(window).scroll(function() {

    if($(window).scrollTop() > topbar) {

      $("header").css({"position": "fixed", "top": "0","z-index": "10000" });
      $("#key_wrap").css({"position": "relative", "top":"50px"});

    } else {

      $("header").css("position", "static");
      $("#key_wrap").css({"position": "relative", "top": 0});

    }
  });
}
});

特に細かい解説はいらないかなと思います!
ぜひコピペして使用してみてください!