从jQuery迁移到AngularJS
我有一些jQuery代码有点过时了。我正在尝试将它迁移到AngularJS。作为其中的一部分,我有一个DIV如下所示:从jQuery迁移到AngularJS,jquery,angularjs,Jquery,Angularjs,我有一些jQuery代码有点过时了。我正在尝试将它迁移到AngularJS。作为其中的一部分,我有一个DIV如下所示: <div id="infoMsg" class="infoMsg"></div> 这里的关键部分是显示(“盲”)组件。给出了元素类滑入的外观。我的问题是,在AngularJS的世界里,我怎么能做同样的事情 目前,我的作用域上有一个标志定义为$scope.showMessage=false。我的想法是切换该选项以使div可见或不可见。然而,这种方法并没有
<div id="infoMsg" class="infoMsg"></div>
这里的关键部分是显示(“盲”)组件。给出了元素类滑入的外观。我的问题是,在AngularJS的世界里,我怎么能做同样的事情
目前,我的作用域上有一个标志定义为
$scope.showMessage=false
。我的想法是切换该选项以使div可见或不可见。然而,这种方法并没有给我带来好的“盲”效果。Angular在Angular animate.js
模块中提供了$animation
服务和ngAnimate
指令(必须在Angular.js
之后单独包含它)。这些东西提供了钩子,可以通过CSS转换、CSS关键帧动画或老式的JS超时循环/DOM修改来促进动画
我们鼓励您使用CSS,因为您可以获得更好的性能,并且更容易将表示与标记和应用程序代码分离和维护
第一,第二,第二,最后
包含ngAnimate
模块时,某些指令将自动挂接到animate中(例如ngShow
、ngHide
、ngRepeat
等)。默认情况下,它们只是简单地添加类来触发CSS转换,您所需要做的就是确保您有CSS类名来执行您想要的操作
在ngShow
(或ngHide
)的情况下,它将添加类ng hide
,ng hide add
,然后ng hide add active
,以在隐藏时开始转换。当动画完成时,它只会离开ng hide
。显示时,它将删除ng hide
,并添加ng hide remove
和ng hide remove active
。听起来很复杂,但也不错。这是相当公式化的。这些状态用于促进平稳过渡
在中的示例中,我所做的只是在angular.js
之后包含angular module.js
,并在模块中包含ngAnimate
。然后,我添加了以下CSS,使用选择器。fancy
,为元素制作了一个粗糙的类似盲人的动画:
.fancy {
padding:10px;
border:1px solid black;
background:red;
}
.fancy.ng-hide-add, .fancy.ng-hide-remove {
-webkit-transition:all linear 5s;
-moz-transition:all linear 5s;
-o-transition:all linear 5s;
transition:all linear 5s;
display:block!important;
}
.fancy.ng-hide-add.ng-hide-add-active,
.fancy.ng-hide-remove {
max-height: 0;
}
.fancy.ng-hide-add,
.fancy.ng-hide-remove.ng-hide-remove-active {
max-height:100px;
}
这个转变只是一个简单的例子。您可能需要对其进行改进,因为max height
这件事有点麻烦。考虑使用一个为你创建的。
无论如何,CSS已经就位,我所做的就是正常使用
ngShow
,为元素提供fancy
类,以便在元素显示和隐藏时应用正确的转换。Angular在Angular animate.js
模块中提供$animation
服务和ngAnimate
指令(您必须在angular.js
之后单独包含它)。这些东西提供了挂钩,可以通过CSS转换、CSS关键帧动画或老式的js超时循环/DOM修改来促进动画
我们鼓励您使用CSS,因为您可以获得更好的性能,并且更容易将表示与标记和应用程序代码分离和维护
第一,第二,第二,最后
当您包括ngAnimate
模块时,某些指令将自动挂接到animate中(例如ngShow
,ngHide
,ngRepeat
,等等)。默认情况下,它们只需添加类来触发CSS转换,您所需要做的就是确保您有CSS类名来执行您想要的操作
如果是ngShow
(或ngHide
),它将添加类ng hide
,ng hide add
,然后ng hide add active
以在隐藏时开始转换。动画完成后,它将只保留ng hide
。当您显示时,它将删除ng hide
并添加ng hide remove
和ng hide remove active
。Sounds很复杂,但也不错。它很公式化。这些状态是为了促进平稳过渡
在中的示例中,我所做的只是在angular.js
之后包含angular module.js
,并在模块中包含ngAnimate
。然后我添加了以下CSS,以使用选择器。fancy
为元素制作一个粗糙的盲人动画:
.fancy {
padding:10px;
border:1px solid black;
background:red;
}
.fancy.ng-hide-add, .fancy.ng-hide-remove {
-webkit-transition:all linear 5s;
-moz-transition:all linear 5s;
-o-transition:all linear 5s;
transition:all linear 5s;
display:block!important;
}
.fancy.ng-hide-add.ng-hide-add-active,
.fancy.ng-hide-remove {
max-height: 0;
}
.fancy.ng-hide-add,
.fancy.ng-hide-remove.ng-hide-remove-active {
max-height:100px;
}
这个过渡只是一个简单的例子。你可能需要改进它,因为
无论如何,CSS已经就位,我所做的就是正常使用
,为元素提供ngShow
类,以便在元素显示和隐藏时应用正确的转换。fancy
Angular animate.js
模块中提供$animation
服务和ngAnimate
指令(您必须在angular.js
之后单独包含它)。这些东西提供了挂钩,可以通过CSS转换、CSS关键帧动画或老式的js超时循环/DOM修改来促进动画
我们鼓励您使用CSS,因为您可以获得更好的性能,并且更容易将表示与标记和应用程序代码分离和维护
第一,第二,第二,最后
当您包括ngAnimate
模块时,某些指令将自动挂接到animate中(例如ngShow
,ngHide
,ngRepeat
,等等)。默认情况下,它们只需添加类来触发CSS转换,您所需要做的就是确保您有CSS类名来执行您想要的操作
在ngShow
(或ngHide
)的情况下,它将添加类ng hide
,ng hide add
,然后ng hide add active
在隐藏时开始转换。动画完成后,它将