所需的行为是单击图像,并<div>在 1 秒内轻松达到全高度。再次单击图像时,我需要<div>在 1 秒内恢复到隐藏状态。
现在会发生什么:
- 单击图像会
<div>立即显示,没有过渡。 - 再次单击会在两秒钟后
<div>隐藏。隐藏时没有过渡。
我的指令的 JS:
.directive('gigDetails', ['$animator', 函数工厂($animator) {
返回 {
限制:'A',
templateUrl: 'partials/gigdetails.html',
替换:假,
嵌入:假,
范围: {
gigId:'@'
},
控制器:功能($范围){
$scope.expandedObjectTracker = {};
},
编译:函数(tElement,tAttrs){
tElement.hide();
返回函数链接(范围、元素、属性){
var animator = $animator(范围, attrs);
var gigId = scope.gigId;
var startGigAction = 函数 () {
var expandObject = scope.expandedObjectTracker;
如果(!expandedObject.openNow){
// 没有打开,打开它!
animator.show(元素);
扩展对象.openNow = true;
} 别的 {
animator.hide(元素);
扩展对象.openNow = false;
}
};
element.prev('.gridThumb').on('click', startGigAction);
}
},
};
}]);
在 HTML 中调用它:
<li ng-repeat="gig in gigs">
<img ng-src="{{ homeURL + '/' + gig.imgURL }}" class="gridThumb" id="{{ 'gigThumb' + gig.gigId }}">
<div
class="gigDetailsContainer"
gig-details
gig-id="{{ gig.gigId }}"
ng-animate="'gig-container'"
>
</div>
</li>
CSS定义:
/* 角度转换 */
.gig-container-show, .gig-container-hide {
-webkit-transition:height 1s 轻松;
-moz-transition:height 1s 缓解;
-o-transition:height 1s 缓解;
过渡:高度 1s 缓和;
}
我究竟做错了什么?