2011-06-24 17 views
1

有人可以幫助建議一個好方法來實現以下請?如何在頁面向下滾動時將兩個元素分開?

我想兩個重疊的圖像(其實並不重要,他們是圖像)分開幻燈片作爲頁面滾動下來,他們映入眼簾,並幻燈片一起回來,因爲他們走出去的視圖。想想一個zip的工作原理。

從另一個腳本,我認爲它可以通過調整實現下面的,但我仍然不能圍繞它讓我的頭:

var top = $('.container').offset().top - parseFloat($('.container').css('margin-top').replace(/auto/, 0)); 
$(window).scroll(function (event) { 
var y = $(this).scrollTop(); 
if (y >= top) { 
    $('.imageA').addClass('moveLeft'); 
    $('.imageB').addClass('moveRight'); 
    } 
else { 
    $('.imageA').removeClass('moveLeft'); 
    $('.imageB').removeClass('moveRight'); 
    } 
}); 

但隨着.container映入眼簾,這將只是一次觸發事件。

我該怎麼做才能讓容器滾動查看越多,圖像之間的距離越大?

回答

2

你只是設置/刪除一個類,所以你不會得到動畫運動。您應該嘗試設置相對於y變量的位置或邊距。

簡單的例子來給你一個想法:

.left { 
    width: 100px; 
    height: 100px; 
    background-color: #f99; 
    position: absolute; 
    right: 50%; 
    bottom: 0; 
} 

.right { 
    width: 100px; 
    height: 100px; 
    background-color: #9f9; 
    position: absolute; 
    left: 50%; 
    bottom: 0; 
} 

$(window).scroll(function (event) { 
    var y = $(this).scrollTop(); 
    $('.left').css('marginRight', y/5); 
    $('.right').css('marginLeft', y/5); 
}); 

見的jsfiddle here

+0

是的,我想通爲多,但我想我會給一個起點有人能夠幫助。增加/刪除班級或設置職位本身並不能解決問題。就像你說的那樣,元素之間的差距需要與某些東西相關。 –

+0

這是正確的。然後,一旦容器開始從視口中滾出,物品就會一起移回。但這當然是基本的想法,謝謝。 –

+0

好的,希望它有助於作爲一個起點。 JavaScript應該很簡單,當試圖做這樣的事情時,總是會遇到CSS。 – fearofawhackplanet

相關問題