midnight.js是一款效果非常酷的jquery视觉差滚动效果插件。它可以让你的顶部导航或logo在滚动到不同的区域时呈现多种不同的视觉状态。

HTML结构

创建一个固定的导航和header,例如像下面这样。

<nav class="fixed">
  <a class="logo">Logo</a>
</nav>
                

你必须确保header的定位方式为:position:fixed

然后你可以在你的页面中添加多个section,每个section在logo进入时都会呈现不同的状态,给section添加data-midnight="your-class"。如果你不使用任何属性或只是留下空白,那么那个section将被应用为.default

<section data-midnight="white">
  <h1>A section with a dark background, so a white nav would look better here</h1>
</section>

<div data-midnight="blue">
  <h1>A blue nav looks better here</h1>
</div>

<footer>
  <h1>This will just use the default header</h1>
</footer>
                

CSS样式

你可以在.midnightHeader.your-class中替换你的样式,例如:

.midnightHeader.default {
  background: none;
  color: black;
}
.midnightHeader.white {
  background: white;
  color: black;
}
.midnightHeader.blue {
  background: blue;
  color: white;
}
.midnightHeader.red {
  background: red;
  color: white;
}
                

JAVASCRIPT

在页面中引入jQuery文件和midnight.jquery.js:

<script src="assets/js/jquery-1.11.1.min.js"></script>
<script src="midnight.jquery.min.js"></script>
                

自定义标签

如果你想创建一个属于自己的漂亮的header或logo,那么你需要做好两件事:

  • 首先,添加一个div,给它class midnightHeaderdefault
  • 然后,添加一个div,给它class midnightHeaderyour-class
  • 注意:所有的header需要相同的高度。
<nav class="fixed">
  <!-- Your standard header -->
  <div class="midnightHeader default">
    <a class="logo">Logo</a>
  </div>

  <!-- A header with a butterfly -->
  <div class="midnightHeader butterfly">
    <a class="logo">Logo</a>
    <span class="a-butterfly"><!-- Everybody loves butterflies! --></span>
    <span class="another-butterfly"><!-- OH GOD THEY ARE IN MY FACE --></span>
    <span class="yet-another-butterfly"><!-- AAAAAHHHHHHHHHHHHHHHHHHHHH --></span>
  </div>
</nav>
                

可选参数

下面是使用midnight时的一些可选参数:

$('nav').midnight({
  // The class that wraps each header. Used as a clipping mask.
  headerClass: 'midnightHeader',
  // The class that wraps the contents of each header. Also used as a clipping mask.
  innerClass: 'midnightInner',
  // The class used by the default header (useful when adding multiple headers with different markup).
  defaultClass: 'default'
});
                

更多关于midnight的信息请参看:https://github.com/Aerolab/midnight.js