2016-02-14 82 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

它确实有效,但如果添加更多的部分,红色背景将再次出现。我想找到可以在所有平台和尺寸下工作的解决方案。 –