【问题标题】:CSS Transitions using AngularJS ng-show使用 AngularJS ng-show 的 CSS 过渡
【发布时间】:2015-08-05 15:20:11
【问题描述】:

所以我正在尝试为一些引导徽章创建幻灯片效果,我使用 AngularJS 来显示一些子类别

我有两种类别,父类和子类。当我单击父级时,我想显示父级的子类别,如果它们已经显示,则隐藏它们。

我正在使用 ng-show 指令来执行此操作。我遇到的问题是,当我想使用 CSS 过渡来滑入和滑出这些子类别时,动画不会显示,它只是显示或隐藏它们。就像动画没有机会发生一样,因为显示/隐藏指令覆盖了过渡。

这里是html:

<div ng-controller="MainController">
  <ul ng-repeat="category in categories">
    <li ng-if="category.category_type=='parent'" ng-show="category.category_show">
      <span class="badge badge-p" ng-click="updateResults(category)">{{category.category_name}}</span>
    </li>
    <li ng-if="category.category_type == 'child'" ng-show="category.category_show">
      <span class="badge badge-c badge-slider">{{category.category_name}}</span>
    </li>
  </ul>
</div>

以下是相关的 CSS 过渡和 .ng-hide 内容:

.ng-hide-add, .ng-hide-remove {
    display: block !important;
}

.badge-slider {
  max-height: 100px;
  -webkit-transition: max-height linear 0.5s;
  -moz-transition: max-height linear 0.5s;
  -o-transition: max-height linear 0.5s;
  transition: max-height linear 0.5s;
}

.badge-slider.ng-hide {
  max-height: 0px;
}

这是一个 plnkr,所以你可以看到我正在做的一个非常非常简化的版本是如何工作的:http://plnkr.co/edit/PEAxMV1SA0Wk6fpNhJH4

非常感谢任何帮助!

【问题讨论】:

    标签: javascript css angularjs transition


    【解决方案1】:

    我已经派生了一个带有工作版本的new plunker

    我需要将 badge-slider 类添加到具有 ng-show 属性的实际元素中:

    <li ng-if="category.category_type == 'child'" ng-show="category.category_show" class="badge-slider">
    

    我在.badge-slider 规则中添加了overflow:hidden

    .badge-slider {
      max-height: 100px;
      -webkit-transition: max-height linear 0.5s;
      -moz-transition: max-height linear 0.5s;
      -o-transition: max-height linear 0.5s;
      transition: max-height linear 0.5s;
      overflow:hidden;
    }
    

    【讨论】:

    • 看起来真的很棒!所以滑块必须添加到
    • 元素 - 这是有道理的 - 它仍然在 元素上,所以我将它删除了....谢谢一百万
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签