[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, { width: '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, { width: '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>
分类:
AngularJS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具