使用jQuery限制滚动时的垂直背景位置

时间:2015-03-13 14:16:55

标签: javascript jquery scroll background-image parallax

我正在使用此功能:

$(window).bind('load resize scroll',function(e) {
    var y = $(window).scrollTop();

    $('.tm-parallax').filter(function() {
        return $(this).offset().top < (y + $(window).height()) &&
               $(this).offset().top + $(this).height() > y;
    }).css('background-position', '50% ' + parseInt(-y / 50) + 'px');
});

在向下滚动时实现对背景图像的视差效果。

我想将y位置限制为特定值(例如100px),因此背景图像中心在达到此值后仍然可见。

以下是代码:http://jsfiddle.net/esedic/vw2n16r8/4/

因为bakcground图像非常大,所以最好在全屏上看到:https://jsfiddle.net/esedic/vw2n16r8/4/embedded/result/

因为我在多个元素上使用视差背景图像,我正在寻找为每个元素设置不同值的解决方案(可能使用数据属性?)。

感谢您的帮助!

1 个答案:

答案 0 :(得分:-3)

你应该尝试颠倒它的极性,但试试这个:

$(window).bind('load resize scroll',function(e) {
    var y = $(window).scrollTop();

    $('.tm-parallax').filter(function() {
        if have return $(this).onset().top < (y + $(window).height()) &&
               $(this).onset().top + $(this).height() > y;
    }).css('background-position', '50% ' + parseInt(-y / 50) + 'px');
});