大佬教程收集整理的这篇文章主要介绍了angularjs – 两种不同的路线变化动画,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
导航如下所示:
Link to A | Link to B | Link to C | Link to D | Link to E
从状态A导航到状态B应使屏幕A向左滑动,屏幕B从右侧滑入;从状态B导航到状态A反之亦然。
工作是通过transform转换屏幕转换:translateX(…);仅在一个方向进入和离开。
通常,我使用带有标志的ng-class来控制我的动画。然而,在这种情况下,在ui-view元素上设置一个类根本不起作用(Angular 1.2和ui-router 0.2还不完全兼容)。它也不会使用自定义指令监听范围。$ on“$ stateChangeStart”,在转换开始后被触发。
如何实现所需的行为?
编辑:解决方案
为了记录:我最终使用$ state.go()定制$ scope函数来确定改变路由前的方向。这避免了$ digest已经在进行中的错误。确定动画的类被添加到ui-view的父元素中;这使得当前和未来的ui视图在正确的方向上动画化。
控制器功能(Coffeescript):
go: (entry) -> fromIdx = ... toIdx = ... if fromIdx > toIdx $scope.BACk = false else $scope.BACk = true $state.go entry
模板:
<div ng-class="{toLeft: BACk}"> <div ui-view></div> </div>@H_874_25@
<div class="viewWrap" ng-controller="viewCtrl"> <div class="container" ui-view ng-class="{BACk: BACk}"></div> </div>
然后在你的控制器内
.controller('viewCtrl',function ($scope) { $scope.$on('$stateChangesuccess',function (event,toStatE) { if (toState.name === 'state1') { $scope.BACk = true; } else { $scope.BACk = false; } }); });
我已经设立了一个代号,以示范这里http://codepen.io/ed_conolly/pen/aubKf
对于任何试图这样做的人,请注意,由于目前与Angular 1.2和UI Router中的动画不兼容,我不得不使用ui.router.compat模块。
@H_874_25@以上是大佬教程为你收集整理的angularjs – 两种不同的路线变化动画全部内容,希望文章能够帮你解决angularjs – 两种不同的路线变化动画所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。