使用margin-top滚动视差

时间:2015-12-29 22:42:42

标签: javascript jquery css css3 parallax

下面适用于background-position:但是当尝试使用margin-top在不同的元素上使用相同的效果时它不起作用:第二个元素没有背景 - 但是div是内容。有什么建议吗?

function parallax() {
    setpos(".filter-page");
    setpos(".filter");
//    setpos(".filter", 4);
//    setpos("#pb3");
//    setpos("#pb4");
}

function setpos(element, factor) {
    factor = factor || 2;

    var offset = $(".filter-page").offset();
    var w = $(window);

    var posx = (offset.left - w.scrollLeft()) / factor;
    var posy = (offset.top - w.scrollTop()) / factor;

    $(".filter-page").css('background-position', '10% '+posy+'px');
//    $(".filter").css('background-position', '15% '+posy+'px');

    $(".filter").css('margin-top', '10% '+posy+'px');
}

$(document).ready(function () {
    parallax();
}).scroll(function () {
    parallax();
});

1 个答案:

答案 0 :(得分:0)

使用时

$(".filter-page").css('background-position', '10% '+posy+'px');

这意味着你要设置背景位置的值 x(10%) y(时尚像素),这是一个有效值此属性(http://www.w3schools.com/cssref/pr_background-position.asp) - 因为您可以同时设置X和Y.

然而, margin-top 属性并不期望这种值(http://www.w3schools.com/cssref/pr_margin-top.asp)。无法将X和X值设置为" margin-top"。此属性只有一个值可供设置。因此,如果您同时删除10%或posy px,这将有效。