将当前保证金值添加到另一个值

Adding current margin value to another value

本文关键字:添加 另一个 保证金      更新时间:2023-09-26

我的问题类似于:如何通过jquery增加/减少当前边距? 但是我无法调整解决方案以匹配我的代码。我不断收到错误。

我的 CSS 定义了$logo边距顶部为 -82px 的变量。在下面的JS中,边距顶部值正在滚动时进行调整,但它假设边距顶部的起始值为0。我怎么说它的-82px?

这是故障的jsfidd: http://jsfiddle.net/5DAa9/小心向下滚动,您会注意到框跳跃。

var $logo = $('.logo.abbr');
var windowScroll;
var $curValue = $( '.logo.abbr' ).css( "margin-top" );
    // Functional parallaxing calculations
    function slidingTitle() {
        //Get scroll position of window
        windowScroll = $(this).scrollTop();
        //Slow scroll of .logo and fade it out
        $logo.css({
            'margin-top' : ($curValue-(windowScroll/3)+"px") // Assuming this is the line I need to change??
        });
    }

这是一个快速解决方案...

windowScroll = $(this).scrollTop()+250;

我不知道为什么会发生这种情况。我会继续四处闲逛,看看我是否能弄清楚,但这在这里对我有用

http://jsfiddle.net/5DAa9/1/

编辑:

我发现了问题!!

windowScroll = $(this).scrollTop(); 如果页面位于顶部,则此行将返回 0。您已在滚动之前将边距设置为 -82px,以便在第一次滚动时被删除并设置回 0 或滚动除以 3 的任何内容。因此,您要进行该计算,然后再次减去 82 像素以将其保持在"同一位置"或防止跳转。

$logo.css({
'margin-top' : -(windowScroll/3)-82+"px"
});

这是一个丑陋的修复,但这就是正在发生的事情。我假设 250 个缩放 scrollTop 返回的内容相当于 82px。这是一个更新的小提琴:http://jsfiddle.net/5DAa9/3/