AngularJS анимированная навигация

У меня есть такой макет HTML

<div id="headbar" ng-swipe-left="ToogleMenu()">
  <div id="menu" ng-hide="menuTogglestate">
    <ul>
      <li><a href="#">Menu</a></li>
      ....
    </ul>
  </div>
</div>

Как я могу получить доступ к своему контроллеру в функции Togglemenu к точке #menu или вызвать ng-анимацию, к которой я обращаюсь в меню в макете? Или мне нужно добавить анимацию поверх ng-hide из #menu? Поскольку у меня есть фон jQuery, я немного растерялся из-за того, как работают анимации AngularJS. Но я вообще не хочу использовать jQuery, иначе я никогда не выучу Angular правильным образом. Просто для записи, я хотел бы использовать javascript, а не анимацию ключевых кадров CSS.

1 ответ

Решение

Предполагая, что ваша переменная модуля app

app.animation('#menu', function() {
  return {

    beforeAddClass : function(element, className, done) {
      if(className == 'ng-hide') {
        jQuery(element).animate({left: -200}, done);
      }
      else {
        done();
      }
    },

    removeClass : function(element, className, done) {
      if(className == 'ng-hide') {
        jQuery(element).css({left: -200}).animate({left: 0}, done);
      }
      else {
        done();
      }
    }

  };
});
Другие вопросы по тегам