是否可以在 Angular 指令中使用 jQuery 来执行动画

Is it OK to use jQuery in Angular directives to perform animations?

本文关键字:jQuery 执行 动画 Angular 指令 是否      更新时间:2023-09-26

>我为我的sidebar编写了一个简单的指令来执行一些基本的动画,例如滑入以及修改content类的宽度和边距。

我的问题是,以这种方式使用jQuery动画可以吗:

//sidebar directive, slides in and out on click
projectDirectives.directive('sideBar', function(){
    return {
      restrict: 'A',
      link: function(scope, element, attrs){
        var $sidebar = element.find('#navbar');
        var $content = $('.content');
        element.find('#nav_icon').on('click', function(event){
          if(!scope.navbar){
            scope.navbar = true;
            scope.margin = parseInt($sidebar.css('marginLeft'));
            scope.contentWidth = parseInt($content.css('width'));
            $content.animate({'width':scope.contentWidth - Math.abs(scope.margin) + 'px',
                'marginLeft':Math.abs(scope.margin)
            });
            $sidebar.animate({'marginLeft':0});
          } else {
            scope.navbar = false;
            $content.animate({'width':scope.contentWidth + 'px',
                'marginLeft': 0
            });
            $sidebar.animate({'marginLeft':scope.margin+'px'});
          }
        })
      },
      controller: ['$scope', function($scope){
        $scope.margin = null;
        $scope.navbar = false;
        $scope.contentWidth = null;
      }]
    };
}

它有效,但我知道关于 Angular 项目的结构有非常具体和常见的约定

将 jQuery 与 AngularJs 混合使用是一种不好的做法,因为您可以使用 AngularJs 来做到这一点。

一个很好的答案你的问题。

希望这有帮助!