Как передать параметры с помощью jquery animate

0

У меня есть следующий код:

     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');
    }
  • 0
    Что такое pos ? Вы можете сделать {right: r, left: l} а затем установить r и l . Если вы установите l , установите r в «auto» и наоборот.
  • 0
    эхх .. ну дай мне проверить это ..
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

Если вы хотите оживить динамически вправо или влево, вам нужно установить 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"});
  • 1
    Это не сработает, это опечатка?
  • 0
    не повезло :( я получаю неожиданное поведение
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню