sticky-header.js是一款非常实用的兼容IE8+浏览器的页面顶部固定jQuery插件。该页面顶部固定插件可以通过参数来控制header元素的样式及固定效果,并且提供了丰富的回调函数。

使用方法

使用该图片画廊插件需要引入jQuery、sticky-header.js文件

            
<script src="js/jquery.min.js"></script>
<script src="js/sticky-header.js"></script>                
              
HTML结构

你可以使用一个<header>元素来作为页面的头部。

<header class="example"> 
  <!--  header stuff ... --> 
</header>          
              
初始化插件

在页面DOM元素加载完毕之后,可以通过stickMe()方法来初始化该页面顶部固定插件。

$(document).ready(function(){
  $('.example').stickMe(); 
})             
              

在插件初始化之后,<header>元素的将被修改,添加一些额外的class。

<!-- 插件初始化之后header元素的结构 --> 
<header class="example stick-me not-sticking"> 
  <!--  header stuff ... --> 
</header>



<!-- header元素固定时的html结构 --> 
<header class="example stick-me sticking"> 
  <!--  header stuff ... --> 
</header>              
              
CSS样式

你需要通过CSS来设置一下header元素的z-index属性,如果有需要,还可以设置一下它的背景颜色。

/* Make sure your header has z-index and background set and it's also full width */
.example {
  width: 100%;
  z-index: 999;
  background-color: #ffffff;
}

/* OR you can also style plugin's class .sticking, 
that way you can style it differently when it's sticking */
.sticking {
  width: 100%;
  z-index: 999;
  background-color: #ffffff;
}                
              

配置参数

该页面顶部固定插件的默认配置参数如下:

transitionDuration: 300,
shadow: false,
shadowOpacity: 0.3,
animate: true,
triggerAtCenter: true,
transitionStyle: 'fade',
stickyAlready: false                
              
参数 类型 描述
topOffset int 页面滚动多少距离时顶部开始固定,默认值为300像素
shadow boolean 当页面顶部固定时将带阴影效果
shadowOpacity float 顶部阴影效果的透明度
animate boolean 是否使用平滑过渡的动画效果
transitionStyle string 顶部固定动画过渡效果的类型:'fade'或'slide'
triggetAtCenter boolean 默认情况下,当页面滚动到viewport的一半时顶部将固定,设置该参数为false,可以使页面滚动到viewport之外才固定
stickyAlready boolean 在页面初始化之后就使页面一直固定在顶部
transitionDuration int 动画过渡的持续时间

事件

事件 描述
sticky-begin 当顶部开始固定时触发
sticking 当顶部固定时一直触发
top-reached 当滚动到页面顶部时触发
bottom-reached 当滚动到页面底部时触发

事件的使用方法如下:

$(document).ready(function(){
  $('.site-header').on('sticky-begin', function() { 
    console.log("Began"); 
  });

  $('.site-header').on('sticking', function() { 
    console.log("Sticking"); 
  });

  $('.site-header').on('top-reached', function() { 
    console.log("Top reached"); 
  });

  $('.site-header').on('bottom-reached', function() { 
    console.log("Bottom reached"); 
  });
})            
          

Sticky Header插件的github地址为:https://github.com/m-danish-iqbal/sticky-header