2014-03-26 3 views
0

Я попытался установить JQuery UI, чтобы я мог легко добавлять анимацию в funciton toggleClass, но он только анимирует при добавлении класса, а не при удалении класса (или перемещение назад в исходное положение).Как я могу переключить анимацию div?

jQuery('#menu').click(function() { 
    jQuery('#wrap').toggleClass('move-right', 1000); 
    }); 

CSS

#wrap { 
    position: relative; 
    bottom: 22px; 
    max-width: 1150px; 
    margin: 0 auto; 
    padding: 20px; 
} 

.move-right { 
    left: 9%; 
} 

Так как я могу получить эту анимацию в обоих направлениях?

Это просто слайд справа, а затем назад. Я думал, JQuery UI будет проще всего, но если мне не нужно его еще лучше

+0

Это, кажется, работает: http://jsfiddle.net/aT5RM/ – Alethes

ответ

1

добавить левую позицию #wrap

затем изменить селектор .move-right, чтобы быть более точным

#wrap { 
    position: relative; 
    bottom: 22px; 
    max-width: 1150px; 
    margin: 0 auto; 
    padding: 20px; 
    left:0; 
} 

#wrap.move-right { 
    left: 9%; 
} 

http://jsfiddle.net/TrcLy/

+0

Спасибо это сработало! – user3427494

0

Вы можете попробовать это, используя логическое значение, и если логическое значение истинно, попробуйте переместить его в другую сторону. Тогда ваш код должен быть что-то вроде этого:

JS:

var right = false; 
jQuery('#menu').click(function() { 
    if(!right) { 
    jQuery('#wrap').toggleClass('move-right', 1000); 
    right = true; 
    } else if(right) { 
    jQuery('#wrap').toggleClass('move-left', 1000); 
    right = false; 
    } 
}); 

CSS:

#wrap { 
    position: relative; 
    bottom: 22px; 
    max-width: 1150px; 
    margin: 0 auto; 
    padding: 20px; 
} 

.move-right { 
    left: 9%; 
} 

.move-left { 
    right: 9%; 
} 

Это в основном проверяет, является ли 'обертка' переместилась прямо на кнопке. Если нет, он перемещает его вправо, иначе он перемещается влево.

+0

Спасибо, но это было плохо. Не удалял классы, когда это должно было быть. Спасибо за попытку, хотя, высоко ценим! – user3427494

0

Вы можете использовать переход CSS3 для определения свойства перехода (слева) и времени (1s), см.: http://jsfiddle.net/m3sEn/1/ Для этого не требуется пользовательский интерфейс jQuery.

CSS:

#wrap { 
    left: 0; 
    transition: left 1s; 
} 

#wrap.move-right { 
    left: 9%; 
} 
Смежные вопросы