修复与父容器相关的位置

时间:2013-10-11 11:43:36

标签: javascript jquery html css

我正在使用一个非常简单的代码在滚动时制作一个粘性元素。

我想制作.top sticky,它包含在.wrap中。 当我向下滚动时,我想设置与包裹相关的.top的位置(这样它从左边开始:0与.wrap相关,与身体无关。我想把它保留在.wrap中。我怎样才能做到这一点? 感谢。

jQuery的:

var top = $('.top').offset().top;
$(window).scroll(function (event) {
    var y = $(this).scrollTop();
    if (y >= top){
        $('.top').addClass('sticky');
    }
    else{
        $('.top').removeClass('sticky');
    }
});

CSS:

.wrap{
    width: 300px;
    border: 1px solid green;
    margin: 0 auto;
    height: 1000px;
}

.top{
    background: green;
    height: 100px;
}

.sticky{
    position: fixed;    
    top: 0;
    left: 0;
    width: 100%;
}

演示: http://jsfiddle.net/63cFy/

2 个答案:

答案 0 :(得分:5)

尝试以下CSS:

.sticky {
    position: fixed;
    width: inherit;
}

DEMO: http://jsfiddle.net/63cFy/1/


P.S:提到@jsmorph,您还可以添加top: 0以便在滚动时生成元素look better

答案 1 :(得分:0)

喜欢这个

<强> demo

<强> CSS

.wrap{
    width: 300px;
    border: 1px solid green;
    margin: 0 auto;
    height: 1000px;
}

.top{
    background: green;
    height: 100px;
}

.sticky{
   position: fixed;
    width: inherit;
    background-color:red;
}