なんだか最近あつくなったり寒くなったりなんなんでしょうね…
自律神経がおかしくなって体調崩す方も多いそうなので、みなんさもお気をつけください。
今回は『ある一定の場所まできたらナビゲーションを上部に固定する』方法です。
これ、めちゃ初期のころやるやつなんですけど、結構つまずいた記憶があって…
普通にスクロースしたらナビゲーション固定はできるのに、キービジュアルのしたにナビゲーションがある場合だと
うまくいかなかったりしたので備忘録的にかいておきます。
まずは実装から!
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});
    }
  });
}
});
特に細かい解説はいらないかなと思います!
ぜひコピペして使用してみてください!
 
					