首页 > div随滚动条而滚动,但到顶后就固定了,这种效果叫啥名字?如何实现?

div随滚动条而滚动,但到顶后就固定了,这种效果叫啥名字?如何实现?

rt,就类似于豆瓣首页右下方那个div一样的效果


这个是定位,用positionfixed属性可以实现。
一个固定定位(position属性的值为fixed)元素会相对于视窗来定位,这意味着即便页面滚动,它还是会停留在相同的位置。和 relative 一样, toprightbottomleft 属性都可用。


这类插件很多,推荐这个:http://www.css88.com/archives/3515


http://twbs.github.io/bootstrap/javascript/#affix

bootstrap affix,这个插件强大之处在于可以同时 top和bottom 定位,
参见官方文档左侧导航效果,

我之前也发现了一个需要注意的问题,
http://.com/q/1010000000362152

如果只是bottom 或者top中的一个定位,只判断$(window).scrollTop()就可以了,同时需要top就bottom定位的话用affix插件就方便了


stickUp
http://www.bootcss.com/p/stickup/


其实我也自己写过:

    ***    需要引入jQuery    ***

    $(document).scroll(function (){

        //固定SideBar
        if ($(document).scrollTop() > '180') {
            $('#sidebar').offset({top:$(document).scrollTop()+10});
        }else if($(document).scrollTop() <= '180') {
            $('#sidebar').offset({top:191});
        };

    });

监听scroll事件,判断与浏览器顶部的距离,加以操作。代码中的三个数字请自行确定,也可能不需要。


对,sticky,类似fixed和absolute的结合体,比如腾讯的移动网站就是用的这种效果


css有个探索性的新属性也是同样效果
position:sticky;


这种效果叫 sticky,这种动作叫 pin。 可以用更新 top 的方式来实现,也可以用改变 position 为 fixed 的方式来实现。fixed 的方法在 chrome 里面可能会出现元素短暂消失的情况,可能要给元素加一个 css 属性:-webkit-transform: rotateZ(0); 强制浏览器使用硬件加速,来解决这个问题。

【热门文章】
【热门文章】