jquery.pinBox是一款可将任何元素固定在容器中的jQuery插件。通过该jQuery插件,你可以将元素固定在容器的某个位置,使它在页面滚动时跟随一起滚动。

该插件具有响应式的特点,你可以设定一个最小的视口宽度值,当屏幕小于这个宽度时,元素就不会再位置固定(例如可以在手机和平板上将元素占据满整列)。

使用方法

使用jquery.pinBox插件需要在页面中引入jquery1.7+和jquery.pinBox.min.js文件。

<!--  jQuery  -->
<script src="jquery-1.9.1.min.js"></script>
<!--  Include pinBox plugin  -->
<script src="js/jquery.pinBox.min.js"></script>    
  
HTML结构

你不需要进行任何特殊的设置,只需要将你需要滚动固定的元素放置在一个容器中,例如下面的代码中的#pinBoxContainer,通过为固定元素添加一个class,例如.pinBox

<!-- container with id -->
<div class="container" id="pinBoxContainer">
<!--如果你不使用bootstrap.css,并且div的父元素是浮动(float)的,就要确保为其添加一个[position:relative]属性-->
    <div class="col-sm-4">
    <!-- box you want to pin inside [id="pinBoxContainer"] have class or id -->
        <div class="pinBox">
            <h2 class="headColor">Example box</h2>
            <p>some text</p>
        </div>
    </div>

    <div class="col-sm-8">
        <h2 class="headColor">Example box</h2>
        <p>some text</p>
    </div>
</div>    
  
初始化插件

在页面初始化完毕之后,可以通过下面的方法来初始化该插件。

$(document).ready(function() {
    $(".pinBox").pinBox({
        Top : '50px',
        Container : '#pinBoxContainer',
    });
});    
  

配置参数

$(document).ready(function() {
    $(".pinBox").pinBox({
        //default 0px
        Top : '50px',
        //default '.container' 
        Container : '#pinBoxContainer',
        //default 20 
        ZIndex : 20,
        //default '767px' if you disable pinBox in mobile or tablet
        MinWidth : '767px',
        //events if scrolled or window resized  
        Events : function(e){
            console.log(e);
            // e.current => current scroll top [number]
            // e.direction => scroll down or up [up,down]
            // e.width => window width [number]
            // e.active => if pinBox active [true,false]
            // e.disabled => if window width > MinWidth pinBox will disabled [true, false]
        }
    });
});    
  
  • Top:元素固定时距离容器顶部的距离,默认为0。
  • Container:容器的jQuery选择器,默认值为.container
  • ZIndex:元素的z-index属性,默认值为20。
  • MinWidth:视口的最小宽度,当小于这个宽度时元素不再固定。默认值为767像素。
  • Events:回调事件。

jquery.pinBox官方网站地址为:http://nezamy.com/pinBox/