jquery.pinBox元素固定跟随滚动特效代码

这个库可以把父元素的某个子元素固定在网页上,也就是说,当你滚动滚轮的时候,父元素会正常向下滚动,但是被固定的子元素会一直在同一个位置。

和直接用fixed属性固定相比,这个库的特点是被固定的子元素的作用域只在父元素内部。什么意思呢?我们还是用刚才的例子说,假如页面很长,那么当你把父元素滚动出屏幕之后,子元素也会被滚动出去。也就是说在父元素的显示范围内子元素被固定了,但是当父元素移出屏幕时候子元素也同样会被移出。

还有一个亮点就是这个库会自动检测屏幕大小,如果屏幕太小的话会自动取消固定元素,防止影响阅读效果。

如果还是不太明白的话,建议大家看一下官方首页的效果,就一目了然了。

一句话讲解原理:通过检测滚动事件控制被固定元素的位置。

效果截图:

大家可以看到,左侧的深色框就是导航栏,滚动页面的时候会固定在同一个位置。

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

<script src="jquery-1.9.1.min.js"></script>
<script src="js/jquery.pinBox.min.js"></script>

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

<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>

通过下面的方法来初始化该插件。

$(".pinBox").pinBox({
   Top : '50px',
   Container : '#pinBoxContainer',
});
Top:元素固定时距离容器顶部的距离,默认为0。
Container:容器的jQuery选择器,默认值为.container。
ZIndex:元素的z-index属性,默认值为20。
MinWidth:视口的最小宽度,当小于这个宽度时元素不再固定。默认值为767像素。
Events:回调事件。


  GitHub   官网演示


赞(52) 打赏
未经允许不得转载:优客志 » 前端设计
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏