検索

ホームページ  >  に質問  >  本文

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

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

PHP中文网PHP中文网2817日前547

全員に返信(7)返信します

  • 黄舟

    黄舟2017-04-10 13:11:37

    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事件,判断与浏览器顶部的距离,加以操作。代码中的三个数字请自行确定,也可能不需要。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-10 13:11:37

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-10 13:11:37

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

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

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

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

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 13:11:37

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-10 13:11:37

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-10 13:11:37

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-10 13:11:37

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

    返事
    0
  • キャンセル返事