所需的行为是单击图像,并<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 缓和; }
我究竟做错了什么?