0

スクロール時にスティッキー要素を作成するために、非常に単純なコードを使用しています。

.wrap 内にラップされた .top をスティッキーにしたい。下にスクロールすると、ラップに関連する .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/

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 に答える