0

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

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

这是故障的 jsfiddle: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??
        });

    }
4

1 回答 1

0

这是一个快速修复...

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"
});

这是一种丑陋的修复,但就是这样。我假设任何缩放 scrollTop 返回的 250 等于 82px。这是一个更新的小提琴:http: //jsfiddle.net/5DAa9/3/

于 2013-10-30T20:53:47.560 回答