如何使用jquery animate传递参数

时间:2013-11-29 12:52:36

标签: jquery

我有以下代码:

     function openme() {
        $('#wrapper').addClass('primary-nav-opened');
        topbar.animate({
            left: "265px"
        }, {
            duration: 'fast',
            easing: 'swing'
        });
        pagebody.animate({
            left: "265px"
        }, {
            duration: 'fast',
            easing: 'swing'
        });

        $('body').addClass('ov-hidden');
    }

我的问题是:我必须从左到右更改属性,但我必须动态地进行。

我尝试了以下操作,但它不起作用:

var direction = {'right' : pos};

然后我将所有'左'值改为方向。这不起作用。我的代码有什么问题,以及如何让它运行?

非常感谢任何帮助。

由于

更新代码:

     function openme() {
        $('#wrapper').addClass('primary-nav-opened');
        topbar.animate({
            direction: "265px"
        }, {
            duration: 'fast',
            easing: 'swing'
        });
        pagebody.animate({
            direction: "265px"
        }, {
            duration: 'fast',
            easing: 'swing'
        });

        $('body').addClass('ov-hidden');
    }

2 个答案:

答案 0 :(得分:1)

如果要动态向右或向左动画,则需要将两者中的一个设置为所需的像素数,将另一个设置为“自动”。否则他们会发生冲突并且不会动画。 所以你可以这样做:

function openme(dir, amount) {
    $('#wrapper').addClass('primary-nav-opened');
    var movement = {};
    if (dir === 'left') {
        movement.left = amount;
        movement.right = 'auto';
    }
    if (dir === 'right') {
        movement.right = amount;
        movement.left = 'auto';
    }

    topbar.animate(
        movement, {
            duration: 'fast',
            easing: 'swing'
        });
    pagebody.animate(
        movement, {
            duration: 'fast',
            easing: 'swing'
        });

    $('body').addClass('ov-hidden');
}

openme('left','265px');

答案 1 :(得分:0)

 function openme(properties) {
    $('#wrapper').addClass('primary-nav-opened');
    var properties = 
    topbar.animate(properties, {
        duration: 'fast',
        easing: 'swing'
    });
    pagebody.animate(properties, {
        duration: 'fast',
        easing: 'swing'
    });

    $('body').addClass('ov-hidden');
}
openme({right: "auto", left: "265px"});
// ... sometime later
openme({right: "265px", left: "auto"});