• [AnuglarJS] TweenMax with ngAnimate


    Also read: http://www.cnblogs.com/Answer1215/p/3941966.html

    Using ngAnimate:

    //!annotate="YourApp" Your AngularJS Module|Replace this or ngModule with the module that you used to define your application.
    var ngModule = angular.module('YourApp', ['ngAnimate']);
    ngModule.animation('.my-crazy-animation', function() {
      return {
        enter: function(element, done) {
          //run the animation here and call done when the animation is complete
          return function(cancelled) {
            //this (optional) function will be called when the animation
            //completes or when the animation is cancelled (the cancelled
            //flag will be set to true if cancelled).
          };
        },
        leave: function(element, done) { },
        move: function(element, done) { },
    
        //animation that can be triggered before the class is added
        beforeAddClass: function(element, className, done) { },
    
        //animation that can be triggered after the class is added
        addClass: function(element, className, done) { },
    
        //animation that can be triggered before the class is removed
        beforeRemoveClass: function(element, className, done) { },
    
        //animation that can be triggered after the class is removed
        removeClass: function(element, className, done) { }
      };
    });

    Example:

    js:

    angular.module('categories', [
        'eggly.models.categories',
        'ngAnimate'
    ])
    
        .config(function ($stateProvider) {
            $stateProvider
                .state('eggly.categories', {
                    url: '/',
                    views: {
                        'categories@': {
                            controller: 'CategoriesController',
                            templateUrl: 'app/categories/categories.tmpl.html'
                        },
                        'bookmarks@': {
                            controller: 'BookmarksController',
                            templateUrl: 'app/categories/bookmarks/bookmarks.tmpl.html'
                        }
                    }
                });
        })
    
        .controller('CategoriesController', function ($scope) {
    
    
        })
    
    
        .directive('menuItem', function(){
            var controller = function($scope){
                $scope.mouse_over = false;
            };
    
            return {
                scope: true,
                controller: controller
            }
        })
    
        .animation('.menu-animation', function () {
            return {
                beforeAddClass: function (element, className, done) {
                    if (className == 'highlight') {
                        TweenLite.to(element, 0.2, {
                             '223',
                            borderLeft: '10px solid #89CD25',
                            onComplete: done
                        });
                        TweenLite.to(element.find('a'), 0.2, {
                            color: "#89CD25"
                        });
                    }
                    else {
                        done();
                    }
                },
    
                beforeRemoveClass: function (element, className, done) {
                    if (className == 'highlight') {
                        TweenLite.to(element, 0.4, {
                             '180',
                            borderLeft: '5px solid #333',
                            onComplete: done
                        });
                        TweenLite.to(element.find('a'), 0.4, {
                            color: "#5bc0de"
                        });
                    }
                    else {
                        done();
                    }
                }
            };
        });

    HTML:

    <a ng-click="setCurrentCategory(null)"><img class="logo" src="assets/img/eggly-logo.png"></a>
    <ul class="nav nav-sidebar">
        <li menu-item ng-repeat="category in categories"
            class="menu-animation"
            ng-class="{'highlight':mouse_over}"
            ng-mouseenter="mouse_over = true"
            ng-mouseleave="mouse_over = false"
            ng-class="{'active':isCurrentCategory(category)}">
            <a  ng-click="setCurrentCategory(category)">
                {{category.name}}
            </a>
        </li>
    </ul>

  • 相关阅读:
    编写可读性代码的艺术
    web前端常见的加密算法介绍
    git 遇到的问题
    Vue.js使用proxytable跨域的路径问题
    设置动画元素
    解决echarts图表在显示没有数据后再切换后渲染不出的问题
    svn回滚到之前的版本
    插件用法--视频播放video.js
    网页适配
    不跳转页面下载文件
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4119731.html
Copyright © 2020-2023  润新知