Parallax эффект неправильно работает

287
11 января 2017, 02:51

Есть небольшая функция, но она работает не совсем корректно.

$('[data-speed]').each(function () {
        var $bgobj = $(this);
        $(window).scroll(function () {
            var yPos = -($(window).scrollTop() / $bgobj.data('speed'));
            var coords = 'center ' + yPos + 'px';
            $bgobj.css({backgroundPosition: coords});
        });
    });

Она ставит одни и те же значения для всех элементов и получается, что паралакс неправильно работает. Подскажите, как сделать, что бы для каждого блока подставлялись свой backgroundPosition, то есть отсчет начинался с нуля при попадании например третьего блока на экран.

Answer 1

Попробуйте один раз повесить обработчик события scroll на window, а в обработчике находить все элементы с атрибутом data-speed и в цикле каждому задать background-position со сдвигом на нужный data-speed.

READ ALSO
Jquery. Добавление параметра в href к ссылкам с определенным id

Jquery. Добавление параметра в href к ссылкам с определенным id

Здравствуйте, На странице есть ссылки вида:

482
Подстановка значений [требует правки]

Подстановка значений [требует правки]

Подскажите пожалуйста как можно в<base href="http://javascriptru/forum/"/> подставить свою ссылку?

326
Совместимость Bootstrap 3 c IE 9

Совместимость Bootstrap 3 c IE 9

Здравствуйте, пытаюсь адаптировать сайт под IEСперва он отображался как мобильная версия

377