[AngularJS] AngularJS系列(5) 中级篇之动画

目录

  • CSS定义
  • JS定义

ng动画实际帮我们在状态切换的时候 添加特定的样式 从而实现动画效果.

一般我们会通过C3来实现具体的动画.

CSS定义

ng-if

图(实际上,图并不能展现出什么):

HTML

<body ng-app="myApp">
    <button ng-click="show=!show">Toggle</button>
    <div ng-if="show" class="fade">Look Me</div>

    <script type="text/javascript">
        angular.module(‘myApp‘, [‘ngAnimate‘])
    </script>
</body>

CSS

        .fade {
            transition: 1s linear all;
        }
            .fade.ng-enter {
                opacity: 0;
            }
                .fade.ng-enter.ng-enter-active {
                    opacity: 1;
                }
            .fade.ng-leave {
                opacity: 1;
            }
                .fade.ng-leave.ng-leave-active {
                    opacity: 0;
                }

enter和leave的执行过程:

在元素创建的时候,会依次加上.ng-enter、.ng-enter-active的class,然后恢复为默认的class

同样在销毁的时候,会依次加上.ng-leave、.ng-leave-active的class,然后恢复为默认。

ngClass

这里只截取关键代码

    <button ng-click="onOff=!onOff">Toggle</button>
    <div ng-class="{on:onOff}" class="highlight">
        Highlight this box
    </div>

CSS

     .highlight {
            transition: 1s linear all;
        }
            .highlight.on-add {
                background: red;
            }
            .highlight.on {
                background: yellow;
            }
            .highlight.on-remove {
                background: blue;
            }

效果图:

1.5.8支持的指令与动画样式:

Directive Supported Animations
{@link ng.directive:ngRepeat#animations ngRepeat} enter, leave and move
{@link ngRoute.directive:ngView#animations ngView} enter and leave
{@link ng.directive:ngInclude#animations ngInclude} enter and leave
{@link ng.directive:ngSwitch#animations ngSwitch} enter and leave
{@link ng.directive:ngIf#animations ngIf} enter and leave
{@link ng.directive:ngClass#animations ngClass} add and remove (the CSS class(es) present)
{@link ng.directive:ngShow#animations ngShow} & {@link ng.directive:ngHide#animations ngHide} add and remove (the ng-hide class value)
{@link ng.directive:form#animation-hooks form} & {@link ng.directive:ngModel#animation-hooks ngModel} add and remove (dirty, pristine, valid, invalid & all other validations)
{@link module:ngMessages#animations ngMessages} add and remove (ng-active & ng-inactive)
{@link module:ngMessages#animations ngMessage} enter and leave

JS定义

HTML

<body ng-app="myApp" ng-init="items=[1,2,3,4,5,6]">
    <button ng-click="show=!show">Toggle</button>
    <div ng-if="show" ng-repeat="item in items" class="slide">
        {{ item }}
    </div>
</body>

js操作

        angular.module(‘myApp‘, [‘ngAnimate‘])
            .animation(‘.slide‘, [
                function () {
                    return {
                        enter: function (element, doneFn) {
                            jQuery(element).fadeIn(1000, doneFn);
                        },

                        move: function (element, doneFn) {
                            jQuery(element).fadeIn(1000, doneFn);
                        },

                        leave: function (element, doneFn) {
                            jQuery(element).fadeOut(1000, doneFn);
                        }
                    }
                }
            ]);

其中的enter move leave 对应状态变化的事件,详情建议参考源码中的$$AnimateJsProvider.

本文地址:http://www.cnblogs.com/neverc/p/5924789.html

时间: 2024-08-10 00:00:08

[AngularJS] AngularJS系列(5) 中级篇之动画的相关文章

[AngularJS] AngularJS系列(4) 中级篇之指令

目录 API概览 使用Angular.UI.Bootstrap 自定义指令 scope link 我的指令 angular中的指令可谓是最复杂的一块 但是我们的上传组件就能这么写 效果图: API概览 先上一段伪代码: angular.module('moduleName', []).directive( 'namespaceDirectiveName', [ function() { return { restrict : '',// 描述指令在模版中的使用方式,包括元素E,属性A,CSS样式

[AngularJS] AngularJS系列(6) 中级篇之ngResource

目录 $http ngResource $http几乎是所有ng开发中,都会用到的服务.本节将重点说下$http 与 ngResource $http 使用:$http(config); 参数: method:字符串,请求方法. url:字符串,请求地址. params:字符串或者对象,将使用paramserializer序列化并且作为GET请求的参数. data:字符串或者对象,作为请求信息数据的数据. headers:对象,字符串或者函数返回表示发送到服务器的HTTP请求头.如果函数的返回值

[AngularJS] AngularJS系列(3) 中级篇之表单验证

目录 基本验证 验证插件messages 自定义验证 基本验证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <form name="form" novalidate ng-app>     <span>{{form.$invalid}}</span>     <span>{{form.$valid}}</span>     <span>{{form.$dirty}}</spa

[AngularJS] AngularJS系列(2) 中级篇之路由

目录 原理 angular-route ui-router 事件 深度路由 原理 ng的route本质是监听hashchange事件. 在angular-route中 $rootScope.$on('$locationChangeStart', prepareRoute); $rootScope.$on('$locationChangeSuccess', commitRoute); 在ui-router中 listener = listener || $rootScope.$on('$locat

Kotlin——从无到有系列之中级篇(四):面向对象的特征与类(class)继承详解

如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 在前面的章节中,详细的详解了类的使用,但是由于篇幅的限制,关于类的很多特性都没有讲解到.今天在这篇文章中,详细的讲解Kotlin中类的特性.如果您对Kotlin中的类还没有一个整体的了解的话,请参见我上一篇文章Kotlin--类(class)详解 众所周知,Kotlin是一门面向对象的开发语言.那么他也有面向对象语言

AngularJS路由系列(6)-- UI-Router的嵌套State

本系列探寻AngularJS的路由机制,在WebStorm下开发.本篇主要涉及UI-Route的嵌套State. 假设一个主视图上有两个部分视图,部分视图1和部分视图2,主视图对应着一个state,两个部分视图分别对应state1和state2,那state与state1和state2形成了嵌套关系. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新.查看路由,路由事件和URL格式,获取路由参数,路由的Resolv

AngularJS路由系列(5)-- UI-Router的路由约束、Resolve属性、路由附加数据、路由进入退出事件

本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● UI-Router约束路由参数● UI-Router的Resolve属性● UI-Router给路由附加数据● UI-Router的onEnter和onExit事件 AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新.查看路由,路由事件和URL格式,获取路由参数,路由的Resolve3.AngularJS路由系列(3)-- UI-Rou

AngularJS路由系列(3)-- UI-Router初体验

本系列探寻AngularJS的路由机制,在WebStorm下开发. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新.查看路由,路由事件和URL格式,获取路由参数,路由的Resolve3.AngularJS路由系列(3)-- UI-Router初体验4.AngularJS路由系列(4)-- UI-Router的$state服务.路由事件.获取路由参数5.AngularJS路由系列(5)-- UI-Router的路由

angularjs入门学习【指令篇】

一.首先我们来了解下指令API 属性 含义 restrict 申明标识符在模版中作为元素,属性,类,注释或组合,如何使用 priority 设置模版中相对于其他标识符的执行顺序 Template 指定一个字符串式的内嵌模版,如果你指定了模版是一个URL,那么是不会使用的 tempateUrl 指定URL加载的模版,如果你已经指定了内嵌的模版字符串,那么它不会使用的 Replace 如果为真,替换当前元素,如果是假或未指定,拼接到当前元素 Transclude 移动一个标识符的原始字节带你到一个新