angular中的动画效果

用angular来形成动画效果的代码如下

<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background: red;
        }
    </style>
    <script src="angular.min.js"></script>
    <script src="angular-animate.js"></script>
    <script src="jquery-1.11.3.min.js"></script>
    <script>
        //把angular中模块名和要引入的依赖模块写入
        var app = angular.module(‘app‘,[‘ngAnimate‘]);
        //angular中的控制台。先让div显示以便更好观察效果
        app.controller(‘ctrl‘,function($scope){
           $scope.btn = true;
        });
        //要形成动画效果的元素
        app.animation(‘.box‘,function(){
            //返回效果元素
            return {
                enter:function(element,done){
                    //出现时的初始值
                    $(element).css({‘width‘: 0, ‘height‘: 0});
                    //结束时的最终样式
                    $(element).stop().animate({‘width‘: 100, ‘height‘: 100}, 1000);
                },
                leave:function(element,done){
                    //消失时最终的效果
                    $(element).stop().animate({‘width‘: 0, ‘height‘: 0}, 1000, done);
                }
            }
        });

    </script>
</head>
<body ng-controller="ctrl">
<input type="checkbox"  ng-model="btn">

<div class="box" ng-if="btn"></div>
</body>
</html>

这样我们就可以通过angular来形成动画效果了,并且ngAnimate模型还可以添加或移除class

ngAnimate 模型其实并不能使 HTML 元素产生动画,但是 ngAnimate 会监测事件,类似隐藏显示 HTML 元素 ,如果事件发生 ngAnimate 就会使用预定义的 class 来设置 HTML 元素的动画。

AngularJS 添加/移除 class 的指令:

  • ng-show
  • ng-hide
  • ng-class
  • ng-view
  • ng-include
  • ng-repeat
  • ng-if
  • ng-switch

ng-show 和 ng-hide 指令用于添加或移除 ng-hide class 的值。

其他指令会在进入 DOM 会添加 ng-enter 类,移除 DOM 会添加 ng-leave 属性。

当 HTML 元素位置改变时,ng-repeat 指令同样可以添加 ng-move 类 。

此外, 在动画完成后,HTML 元素的类集合将被移除。例如: ng-hide 指令会添加一下类:

  • ng-animate
  • ng-hide-animate
  • ng-hide-add (如果元素将被隐藏)
  • ng-hide-remove (如果元素将显示)
  • ng-hide-add-active (如果元素将隐藏)
  • ng-hide-remove-active (如果元素将显示)
下面我们看一个实例:
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background: red;
            transition: all 1s ease;
        }

        .box.ng-leave {
            opacity: 1;
        }

        .box.ng-leave-active {
            opacity: 0;
        }

        .box.ng-enter {
            opacity: 0;
        }
        .box.ng-enter-active{
            opacity: 1;
        }
    </style>
    <script src="angular.min.js"></script>
    <script src="angular-animate.js"></script>
    <script>
        var app = angular.module(‘app‘,[‘ngAnimate‘]);
        app.controller(‘ctrl‘,function($scope){
           $scope.btn = true;
        });

    </script>
</head>
<body ng-controller="ctrl">
<input type="checkbox"  ng-model="btn">

<div class="box" ng-if="btn"></div>
</body>
</html>
这个实例主要标明:当你复选框选中时,让div背景透明度等于0慢慢变成1显示;
         当你没选中复选框时,让div背景透明度等于1慢慢变成0隐藏;
但是这两个在我们快速点击的时候会形成一个bug,那就是因为上一个没有执行完而形成好几个正在过度的过程。如果要解决这个bug的方法其实也挺简单,那就是在执行前先暂停一下。下面是代码;
 $(element).stop().animate({‘width‘: 0, ‘height‘: 0}, 1000, done);不足之处望大家原谅
 
时间: 2024-10-15 08:30:58

angular中的动画效果的相关文章

CSS3中的动画效果记录

今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform 属性允许你修改CSS可视化模型的坐标控件.使用transform,元素可以安装设定的值变形.旋转.缩放.倾斜. 语法: transform : none | <transform-function> [ <transform-function> ]* 也就是: transform: r

JQuery中的动画效果

JQUERY DAY03: * 动画效果 * 显示与隐藏 * show() - 显示 * 无参版本 - 不具有动画效果 * show(speed,callback)有参版本 - 具有动画效果 * speed - 设置动画执行的时长,单位为毫秒 * 三个预定义值 - slow|normal|fast * callback - 当动画执行完毕后执行的函数 * hide() - 隐藏 * 无参版本 - 不具有动画效果 * hide(speed,callback)有参版本 - 具有动画效果 * spee

CSS3中的动画效果-------Day72

还记得么,在前面也曾实现过"仅仅用css让div动起来",还记得当时是怎么实现的么,是的,transition,针对的也比較局限,仅仅有旋转角度啊,长宽啊之类的,所以说,与其说是动起来,倒真不如说成是过渡.当然它另一个局限性,仅仅有当鼠标放上后才干够触发,仅仅是一个样式变成另一个样式,变化也比較单调,而真正的实现动画效果,css3中另一个很有效的方法:@keyframes. 首先.要知道它的规范和使用方法 还记得transition的使用方法么:在初始的样式中增加div{transit

css3实现的3中loading动画效果

一.css3中animation动画各种属性详解: animation Value:     [<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction> || <animation-fill-

iOS中关于动画效果的要点

在系统并深入学习iOS动画的过程中,不得不说是个痛苦的过程.没有任何书系统的讲解这方面的知识,网上的文章都讲的支离破碎:很幸运的看到了http://objccn.io这个网站:即使如此,还是花了三天时间:这个是对整体概念模糊到不断清晰,再逐步理顺,最后总结归纳为几个关键点.我想这辈子应该都忘记不了了. iOS上的动画效果绝对赞:最常见的uitable动态效果,当手指在屏幕上下滑动时,列表会跟随其一起上下活动:如果猛的往上一推,还可以看到列表的惯性作用下,还会不断滚动,同时慢慢减速.这个过程根本不

Android---63---Android中的动画效果

Android中有四种动画效果: AlphaAnimation:透明度动画效果 ScaleAnimation:缩放动画效果 TranslateAnimation:位移动画效果 RotateAnimation:旋转动画效果 1.透明动画效果 public class MainActivity extends Activity { private AlphaAnimation aa; @Override protected void onCreate(Bundle savedInstanceStat

Vue中的动画效果

Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animate.css 在过渡钩子函数中使用 JavaScript 直接操作 DOM 可以配合使用第三方 JavaScript 动画库,如 Velocity.js 下面分别从这个4个工具来学习Vue动画效果. 一.单元素/组件的过渡 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进

CSS3实现加载中的动画效果

本篇文章由:http://xinpure.com/css3-implementations-of-loading-an-animation-effect/ Loading 的菊花图形组合的不太好,基本上实现这个功能了 动画解析 这个动画用到的 CSS3 特性: transform 主要使用 transform 属性的 rotate,将线条组合成 Loading 图形 (也就是常见的菊花图形) animation 实现将线条颜色由浅到深,再由深到浅来回变换的动画,通过 animation-dela

怎样在留言板中实现动画效果

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; min-height: 25.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #d74200 } p.p4 { margi