2013-07-20 46 views
1

我有一個固定位置的邊欄,裏面有一些容器,裏面有溢出:auto,所以他們可以從主體分開滾動,我想要做的是滾動元素。身體卷軸。使用jquery在固定div元素內滾動

我可以用相反的方式使它工作,即.left被滾動,並且滾動時機體移動(請參閱jsfiddle)。

$(function(){ 

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

}); 

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

我想達到的目標是當身體滾動時。左向下滾動了。

回答

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/

+0

如何將一個這樣做是爲了高度的百分比是多少?編輯: - 使用$(窗口)函數的問題是,當.left元素滾動到底部它反覆跳回到頂部一遍又一遍。 http://jsfiddle.net/g8Krz/406/ – andy

+0

給我一點時間去做。 –

+0

當然可以。謝謝。 – andy