2013-11-29 5 views
0

У меня есть следующий код:Как передать параметры с 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'); 
    } 
+0

Что такое 'pos'? Вы можете сделать '{right: r, left: l}', а затем установить 'r' и' l'. Если вы установите 'l', установите' r' в 'auto' и наоборот. – putvande

+0

ehh ..ok дайте мне проверить, что .. – Wasiim

+0

не могли бы вы помочь мне в письменной форме. – Wasiim

ответ

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

Это точно, что я искал !! Да, это очень помогает – Wasiim

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

Это не сработает, это опечатка? – putvande

+0

не повезло :(я получаю неожиданное поведение – Wasiim

+0

извините, там есть опечатка, игнорируйте строку 'var properties =' – Poetro

Смежные вопросы