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

он работает, но если добавить несколько разделов, красный фон снова появится. Я хочу найти решение, которое будет работать на всех платформах и размерах. –