【问题标题】:How to add "1px" without starting from "0px"?如何在不从“0px”开始的情况下添加“1px”?
【发布时间】:2017-03-20 04:50:35
【问题描述】:

我正在创建视差背景,视差背景的移动速度与内容不同。我已经从 Codepen 稍微修改了这个 jQuery 代码,以便在页面滚动时将 1px 添加到“背景位置-y”。

<script>
    jQuery(function($) {
        $(window).scroll(function(e) {
            parallax();
        });

        function parallax() {
            var scrolled = $(window).scrollTop();
            $('.wsite-section-bg-image').css('background-position-y', -(scrolled * 0.1) + 'px');
        }
    });
</script>

'background-position-y' 已经用 CSS 设置为视差背景,但是当 jQuery 代码触发时,它从“0”而不是其固有的 CSS 位置开始 background-position-y,导致突然图像中的混蛋。

可以在这段代码中添加什么,以便 jQuery 代码将 '1px' 添加到 'background-position-y' 的固有 CSS 位置,而不是从“0”开始?

【问题讨论】:

    标签: jquery css


    【解决方案1】:

    你为什么不尝试一些不同的东西。我从未见过 css background-position-y 并认为这是 Internet Explorer 的特殊功能。这种方法绕过了全零问题

    <script>
    function scrollSomething () {
        var x = $(document).scrollTop();
        // < 1 for slower scroll and > 1 for faster scroll
        var scrollSpeed1 = x * 0.7;
        var scrollSpeed2 = x * 0.5;
        var scrollSpeed3 = x * 1.25;
        var hBckgd1 = $(".background1").height(); // get height
        var hBckgd2 = $(".background2").height(); // get height
        $("background1")css({"top": scrollSpeed1 + "px"});
        $("background2")css({"top": scrollSpeed2 + hBckgd1 + "px"});
        $("background3")css({"top": scrollSpeed3 + hBckgd1 + hBckgd2 + "px"});
        }
    window.addEventListener("scroll", scrollSomething);
    </script>
    

    【讨论】:

    • 我将在同一页面上有多个视差背景,每个背景将位于不同的“背景位置-y”。我不想为所有背景提供相同的“背景位置-y”。如果可能的话,我宁愿 jQuery 代码自行解决。
    • 好的,将编辑上面的代码来处理多个背景。 3分钟左右检查。
    • 显然,第二个和第三个背景不是从第一个背景开始的地方开始的,所以你必须得到背景 1 的高度和背景 2 的高度(使用 jQuery .height())。将背景 2 设置为 (scrollSpeed2 + heightBackground1) 并将背景 3 设置为 (scrollSpeed3 + heightBackground1 + heightBackground2)
    • 嗨 Kobbe,“background-position-y”只是 CSS“background-position”的“y”坐​​标。
    • 我尝试了您创建的代码——我非常感谢——但没有成功。根本没有视差滚动。我需要解决这个问题,看看我能想出什么。
    【解决方案2】:

    所有乘以 0 等于零。 为什么不使用'-'来设置变量值:

    $('.wsite-section-bg-image').css('background-position-y', -(scrolled - 10) + 'px');
    

    【讨论】:

    • Weebs 不是乘以 0,而是乘以 0.1,这与除以 10 相同。
    • 嗨,Kobbe,您好像没有看到帖子的标题和最后一句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多