0

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

我想让 .top 变粘,它被包裹在 .wrap 里面。当我向下滚动时,我想设置 .top 与 wrap 相关的位置(使其从左侧开始:0 与 .wrap 相关,与 body 无关。我只想将其保留在 .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/

4

2 回答 2

5

试试下面的 CSS:

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

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


PS:正如@jsmorph提到的,您还可以添加top: 0以使元素在滚动时看起来更好。

于 2013-10-11T11:46:30.640 回答
0

像这样

演示

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;
}
于 2013-10-11T11:49:18.740 回答