2016-02-14 83 views
1

我正在學習JS和JQ,我正在研究一個簡單的視差效果,我需要幫助才能讓他正確。這裏是代碼:http://codepen.io/ronka/pen/JGxxBb試圖在jQuery中創建一個簡單的視差效果

$(document).ready(function(){ 
    $('section[data-type="parallax"]').each(function(){ 
    var $bgobj = $(this); 
    $(window).scroll(function(){ 
     var $yPos = -($(window).scrollTop()- $bgobj.offset().top); 
     console.log($(this)); 
     $bgobj.css('background-position','50% ' + $yPos +'px'); 
    }); 
    }); 
}); 

正如您在滾動時看到的那樣,您會看到紅色背景。我不希望它只顯示紅色背景圖像。解決辦法是什麼?

+0

那麼,爲什麼你的背景色設置爲紅色? – Djizeus

+1

所以我可以看到沒有背景圖像。 –

回答

0

嘗試用這樣的

$(document).ready(function(){ 
    $('section[data-type="parallax"]').each(function(){ 
    var $bgobj = $(this); 
    $(window).scroll(function(){ 
     var yPos = $(window).scrollTop(); 
     $bgobj.css('background-position','50% -' + (yPos*0.4) +'px'); 
    }); 
    }); 
}); 
+0

看看最下面一個:http://codepen.io/ronka/pen/JGxxBb 它只適用於頂部部分。 –

+0

這取決於你的屏幕尺寸。你可以用這個' - '+(yPos * 0.4)+'px''來調整視差效果。這意味着當你滾動1px時,你的圖像滾動-0.4px。所以設置這個值,你的視差效果會降低。試試這個,而不是' - '+(yPos * 0.2)+'px''。 – smdsgn

+0

它確實有效,但如果添加更多的部分,紅色背景將再次出現。我想找到可以在所有平臺和尺寸下工作的解決方案。 –