1

jquery scrollToFixedは、ページの最上部に到達すると停止し、最上部で修正されると思われるdivの上部に表示されます。

これが私がこれまでに持っているものです。

var arr = new Array();
$('div[id^="post"]').each(function()
{
   // do something with it...
    var id = $(this).attr("id").slice(5);
    //alert(id);

    arr.push(id);

   $(this).css('background-color', 'green');
});

     for (i = 0; i < $('div[id^="post"]').length; i++) {
      //alert(arr[i+1]);

            $('#float-'+arr[i]).scrollToFixed({
        limit: $('#post-'+arr[i+1]).offset().top - $('#float-'+arr[i]).height()-220
    });
    }​

jqueryscrollToFixedプラグインを使用しています。

私は9gag.comで同じ効果を達成しようとしています。画面の下に複数のサイドバーのdivをスクロールします。ここで、アイデアが浮かびました。

ページをスクロールすると、左のdivの終わりに達するまで右のdivが固定されるはずですが、何らかの理由で、右のdivがページの最上部に固定され、top(広告とナビゲーション)のdivがあります常に固定に設定されています。

4

1 に答える 1

0

私があなたを正しく理解していれば、何が起こっているかが予想されます。jQuery プラグイン (scrollToFixed) は、要素を別の要素の下に配置する必要があることを認識していないため、自分で行う必要があります。

最も簡単な方法は、 #float-63 (あまり良い ID ではありません) に、下に配置する必要がある要素の高さに等しいマージントップを与えることです。70pxでも問題ないようです。

これに関する問題は、 「固定」されていない場合でも、70px の margin-top になることです。プラグインが修正されたときに要素に何らかのクラスを追加するようには見えませんが、jQuery を知っていれば簡単に追加できるはずです。

次に、簡単に行うことができます#float-63.scroll-to-fixed {margin-top: 70px}

于 2012-12-06T01:43:58.387 に答える