2013-03-30 28 views
0

因此,我有5個div,並且我將它們從側面和底部或頂部移動,具體取決於哪一個。出於某種原因,我正在嘗試修改腳本,以便案例1和案例2從右側進入。而案例3從左邊進來。我從左邊進入了病例0,病例5從右邊進入。但是,一旦我使用案例3,1和2的設置,它們靜止不動,只有頂部/底部動畫。Div出現錯誤的一面 - 滾動動畫

我該如何解決這個問題?

我也想在那裏添加不透明度,我不知道該怎麼去做。我希望它是0和褪色1

jQuery(document).ready(function() { 
var myHeight; 
jQuery('.type-portfolio').each(function (i) { 
    var myElement = jQuery(this); 
    myElement.data('params', { 
     top1: jQuery(this).css('top'), 
     x1: jQuery(this).css('left') 
    }); 
    switch (i) { 
    case 0: 
     myElement.data('params', { 
      top0: -600, 
      x0: -2600, 
      top1: jQuery(this).css('top'), 
      x1: jQuery(this).css('left') 
     }); 
     break; 
    case 1: 
     myElement.data('params', { 
      top0: -200, 
      x0: -930, 
      top1: jQuery(this).css('top'), 
      x1: jQuery(this).css('left') 
     }); 
     break; 
    case 2: 
     myElement.data('params', { 
      top0: -200, 
      x0: -1030, 
      top1: jQuery(this).css('top'), 
      x1: jQuery(this).css('left') 
     }); 
     break; 
    case 3: 
     myElement.data('params', { 
      top0: 250, 
      x0: -2600, 
      top1: jQuery(this).css('top'), 
      x1: jQuery(this).css('left') 
     }); 
     break; 
    case 4: 
     myElement.data('params', { 
      top0: 250, 
      x0: -530, 
      top1: jQuery(this).css('top'), 
      x1: jQuery(this).css('right') 
     }); 
     break; 
    } 
}); 

function init() { 
    myHeight = jQuery(window).height(); 
    jQuery('.topWrap').css('height', myHeight - 300); 
    jQuery('.portfolioWrapper').css('min-height', Math.max(myHeight/2 + 250, 600)); 
} 
jQuery(window).scroll(function() { 
    var s_max = myHeight/2 + 250; 

    function move(p0, p1, s) { 
     return Math.min((-p0 + p1)/s_max * s + p0, p1); 
    } 
    var scrollTop = parseInt(jQuery(window).scrollTop()); 
    jQuery('.type-portfolio').each(function (i) { 
     var myX = move(jQuery(this).data('params').x0, parseInt(jQuery(this).data('params').x1), scrollTop), 
      myY = move(jQuery(this).data('params').top0, parseInt(jQuery(this).data('params').top1), scrollTop); 
     if (i < 3) { 
      jQuery(this).stop().css({ 
       left: myX + 'px', 
       top: myY + 'px' 
      }) 
     } else { 
      jQuery(this).stop().css({ 
       right: myX + 'px', 
       top: myY + 'px' 
      }) 
     } 
    }) 
}) 
init(); 
jQuery(window).resize(function() { 
    init(); 
}); 
}) 

回答

0

不知道的左/右的問題,而是以滾動褪色的元素:

$(document).ready(function($){ 
    $(window).scroll(function(){ 
     if($(this).scrollTop() > 300){ 
      $("#YourElementID").fadeTo("slow",0); 
     } 
    }); 
}); 
+0

我知道如何淡出的元素時,問題是執行它與我的滾動效果 –

+0

看編輯,歡呼聲。 –

+0

這是一種方法。我希望它能夠在滾動而不是在300px之後觸發。我用x1和top 1添加了一個opacity0和opacity1,並讓它工作。現在唯一的問題是左右方向 –