Parallax. Как прокручивать фон только при прокрутке до определенного блока?

V
На сайте с 04.06.2014
Offline
54
887

Есть DIV с parallax-эффектом. DIV находится не вначале страницы, ближе к концу.

JS-код parallax-эффекта:

$('#block').each(function(){

var $bgobj = $(this);
$window.on('load scroll', function() {
var yPos = -($window.scrollTop() / 10);
var coords = '50% '+ yPos + 'px';
$bgobj.css({ backgroundPosition: coords });
});
});

Проблема в том, что фон начинает прокручиваться сразу с началом прокрутки страницы. Как сделать прокрутку фона только после того, как пользователь прокрутил страницу до этого блока?

Партнёрка №1 в essay-нише (https://goo.gl/YfTPtG)
Gerga
На сайте с 02.08.2015
Offline
94
#1

victorpavloff,


$('#block').each(function(){
var $bgobj = $(this),
bgobj_top = $bgobj.offset().top;
$window.on('load scroll', function() {
var wind_sc_top = $window.scrollTop();
if ( (wind_sc_top - bgobj_top) > 0 ) {
var yPos = -(wind_sc_top / 10);
var coords = '50% '+ yPos + 'px';
$bgobj.css({ backgroundPosition: coords });
}
});
});
V
На сайте с 04.06.2014
Offline
54
#2
Gerga:
victorpavloff,

$('#block').each(function(){
var $bgobj = $(this),
bgobj_top = $bgobj.offset().top;
$window.on('load scroll', function() {
var wind_sc_top = $window.scrollTop();
if ( (wind_sc_top - bgobj_top) > 0 ) {
var yPos = -(wind_sc_top / 10);
var coords = '50% '+ yPos + 'px';
$bgobj.css({ backgroundPosition: coords });
}
});
});

Тут также есть проблема, при выполнении функции фон сразу прокручен на слишком большое расстояние.

Gerga
На сайте с 02.08.2015
Offline
94
#3
victorpavloff:
var yPos = -(wind_sc_top / 10);

измените на


ar yPos = -((wind_sc_top - bgobj_top) / 10);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий