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

时间:2013-10-30 20:36:56

标签: javascript jquery css

我的问题类似于:How to increase/decrease current margin at a number by jquery?但是我无法调整解决方案以匹配我的代码。我一直都有错误。

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

这是一个小故障的问题: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??
        });

    }

1 个答案:

答案 0 :(得分: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/