Подтвердить что ты не робот

Медленный прокрутка фона в Javascript или CSS?

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

Это делается в CSS или jQuery/Javascript?

4b9b3361

Ответ 1

Это сделано javascript (jQuery):

(function () {
    var a = document.body,
        e = document.documentElement;
    $(window).unbind("scroll").scroll(function () {
        a.style.backgroundPosition = "0px " + -(Math.max(e.scrollTop, a.scrollTop) / 8) + "px";
    });
})();

Ответ 2

Эффект на ссылку, которую вы разместили, выполняется в Javascript с помощью jQuery.

Если вы изучите код script сайта здесь, вы можете найти:

.style.backgroundPosition="0px "+-(Math.max(e.scrollTop,a.scrollTop)/8)+"px"

Практически свойство CSS background-position изменяется на странице прокрутки, вычисляя ось Y в зависимости от положения прокрутки страницы. Если у вас есть некоторые знания Javascript, jQuery или Mootools, вы можете легко воспроизвести эффект.

Я думаю, что это невозможно сделать, используя только CSS.

Ответ 3

Этот файл работает для изображений с высоким bg.

(function () {
        var body = document.body,
                e = document.documentElement,
                scrollPercent;
        $(window).unbind("scroll").scroll(function () {
            scrollPercent = 100 * $(window).scrollTop() / ($(document).height() - $(window).height());
            body.style.backgroundPosition = "0px " + scrollPercent + "%";
        });
})();