我查看了本页底部的官方展示/隐藏转换示例... http://docs.angularjs.org/api/ng.directive:ngShow
我试图修改它以从一个div到另一个div获得无缝淡入淡出过渡(过渡:不透明度0.5s缓入),其中两个div占据页面上完全相同的位置,因此一个div在另一个div开始淡入之前完全淡出。
在jquery中,它将如此简单:
$("#divA").fadeOut(function() { $("divB").fadeIn(); });
对于使用单个模型“检查”触发转换的链接示例,有没有人对使用angular实现此目的的最佳方法有任何建议?
答案 0 :(得分:11)
我使用ngShow中的示例基于angular1.2.0-rc.3制作以下jsfiddle。
html代码:
<div ng-app="App">
Click me: <input type="checkbox" ng-model="checked"><br/>
<div class="check-element animate-show" ng-show="checked">
<span class="icon-thumbs-up"></span> I show up when your checkbox is checked.
</div>
<div class="check-element animate-show" ng-hide="checked">
<span class="icon-thumbs-down"></span> I hide when your checkbox is checked.
</div>
</div>
CSS样式
.animate-show.ng-hide-add,
.animate-show.ng-hide-remove {
-webkit-transition:all linear 0.5s;
-moz-transition:all linear 0.5s;
-o-transition:all linear 0.5s;
transition:all linear 0.5s;
display:block!important;
}
.animate-show.ng-hide-add.ng-hide-add-active,
.animate-show.ng-hide-remove {
line-height:0;
opacity:0;
padding:0 10px;
}
.animate-show.ng-hide-add,
.animate-show.ng-hide-remove.ng-hide-remove-active {
line-height:20px;
opacity:1;
padding:10px;
border:1px solid black;
background:white;
}
.check-element {
padding:10px;
border:1px solid black;
background:white;
}
最后是JavaScript代码,不要忘记包含库angular.js
和angular-animate.js
angular.module('App', ['ngAnimate']);
我希望它可以帮到你;)
答案 1 :(得分:9)
使用ngAnimate module,您可以使用-transition-delay
指令在纯CSS中执行此操作:
<强> HTML 强>
<body ng-app="ngAnimate">
Click me: <input type="checkbox" ng-model="checked">
<br/>
<img ng-show="checked" src="img1.jpg">
<img ng-hide="checked" src="img2.jpg">
</body>
<强> CSS 强>
img {
position: absolute;
}
.ng-hide-add-active {
display: block!important;
-webkit-transition: 0.5s linear all;
transition: 0.5s linear all;
}
.ng-hide-remove-active {
display: block!important;
-webkit-transition: 0.5s linear all;
transition: 0.5s linear all;
-webkit-transition-delay: 0.5s;
transition-delay: 0.5s;
}
.ng-hide {
opacity: 0;
}
答案 2 :(得分:0)
您可以将ng-animate与ng-show(http://docs.angularjs.org/api/ngAnimate)结合使用,可从Angular 1.1.4获得。或者,只需在勾选模型时应用show
类,然后将您的节目和动画应用到课程中。
<label><input type="checkbox" ng-model="showElement" />Show div</label>
<div ng-class="{show: showElement}"></div>