1

固定位置のサイドバーには、overflow:auto を使用していくつかのコンテナーが含まれているため、本文とは別にスクロールできます。本文がスクロールするときに要素 .left をスクロールします。

逆の方法で動作させることができます。つまり、.left がスクロールされ、スクロールに合わせて本体が移動します (jsfiddle を参照)。

$(function(){

    $('.left').scroll(function(){
        $('body').scrollTop($(this).scrollTop());    
    })

});

http://jsfiddle.net/g8Krz/403/

私が達成したいのは、本文がスクロールされたときです.leftも下にスクロールします。

4

1 に答える 1

0

どうぞ:

$(function () {

    $('.left').scroll(function () {
        $(window).scrollTop($(this).scrollTop());
    });

    $(window).scroll(function () {
        $('.left').scrollTop($(this).scrollTop());
    })

});

http://jsfiddle.net/g8Krz/404/

必要に応じて、の絶対値ではなく、高さの同じパーセンテージまでスクロールすることもできますscrollTop()

編集

これはパーセンテージ スクロールの実装です。最高ではありませんが、機能し、一般的なアイデアを示しています。

$(function(){

    var $window = $(window);
    var $body = $('body');
    var $left = $('.left');

    var windowScrollHeight = $body.get(0).scrollHeight;
    var leftScrollHeight= $left.get(0).scrollHeight;

    $(window).scroll(function(){
        var windowScrollTop = $window.scrollTop();
        var relativeScroll = windowScrollTop / windowScrollHeight;
        var leftScrollTop = relativeScroll * leftScrollHeight;

        $left.scrollTop(leftScrollTop);
    });

});

http://jsfiddle.net/N3GR8/1/

于 2013-07-20T09:28:24.430 に答える