thi*_*aut 11 css-transitions angularjs ng-animate angular-ui-router angular-material
我目前正在使用AngularJS,ngAnimate,Angular-Material和UI-Router开发移动Web应用程序.我正在遵循UI/UX部分的Google Material Design规范.
我想动画状态改变'Angular方式',特别是这个'Parent to child'动画
我不知道如何实现这种"提升和扩展"动画.
谢谢你的帮助 !
我想你必须自己做.
角度材料不是魔术棒,它复制了Material Design的动画指南.材料设计指南只是指导原则,并且在Google的Android应用程序(内部或非内部)的情况下足够宽松,可以被黑客攻击或严格遵守.
我的感觉是角质材料团队已经像疯子一样推动将这个超棒的工具带到1.0,并将利用Angular 2中的新路由系统来提供一些动画,例如你想要开箱即用的动画.但这是最前沿的前沿,至少目前是这样.好消息似乎是路线将拥有自己的视口和兄弟视口.
AngularJS开始接受Polymer的Web组件概念.滚动到"告诉我神奇!" 在这个页面上,检查这些演示.Polymer的生态系统提供了许多已经制作的组件来构建您的应用程序.它非常大,让你想知道为什么Polymer没有得到与AngularJS相同的动力.但我离题了......
创建一个定制的函数,该函数在单击/点击的列表元素上触发,放置在控制器(或指令)中.
一旦用户单击/点击列表元素,它就会触发该功能(控制台测试).
该功能应该:
为什么绝对命名视图?因为它允许使用z-indexing使列表保留在"项目详细信息"视图下方,所以当用户关闭/离开它时,您可以回滚动画,矩形将缩回到完全相同的尺寸和列表项的位置.最后,转换不透明度:0并离开路线.
这是一个拉伸/滚动离子项的技术的粗略模型.它需要检测项目的y位置,并使用ionicScrollDelegate滚动到它.此外,您将冻结主滚动,以便用户"卡住",直到他关闭"详细视图",然后释放滚动.
$scope.toggleStretchedMode = function(itemID) {
$scope.stretched = $scope.stretched === false ? true: false;
if(!$scope.stretched){
$('ion-item').removeClass('stretched');
$ionicScrollDelegate.freezeAllScrolls(false);
}
else
{
$location.hash(itemID);
$ionicScrollDelegate.$getByHandle('mainScroll').anchorScroll(true);
$ionicScrollDelegate.freezeAllScrolls(true);
$('#'+itemID).addClass('stretched');
};
}
Run Code Online (Sandbox Code Playgroud)
一个非常基本的JSFiddle,需要进行细化(点击的项目应滚动到屏幕中间,然后展开).
请注意,JSFiddle仅阻止鼠标滚动滚动.如果似乎阻止了第一次滑动,但是然后ng-click释放它,因为它远非完美.您不仅应该阻止列表滚动,还应该阻止向上和向下滑动事件.
它也很重要,只能第二次使用.但这个概念可能是这样的.