首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ng-hide动画多个div

使用ng-hide动画多个div
EN

Stack Overflow用户
提问于 2016-08-23 15:42:10
回答 2查看 192关注 0票数 1

我的观点上有几个div,需要动画。我创建了一些这样的CSS:

代码语言:javascript
复制
.pk-image-container {
    position: relative;
    height: 625px;

    .animate-hide {
        position: absolute;
        left: 0;
        opacity: 1;
        transition: all ease 1s;
        height: 625px;
        width: 100%;

        &.ng-hide {
          left: -100%;
          opacity: 0;
        }
    }
}

视图如下所示:

代码语言:javascript
复制
<div class="pk-image-container" ng-if="!multiple">
    <div class="animate-hide" ng-repeat="answer in question.answers track by $index" ng-hide="$index !== currentSlide"></div>
</div>

到目前为止,这给了我一个滑动的效果,从左边逐渐消失,然后消失到左边。但我想做点更好的事。我希望活动项从左边淡入,而非活动项则从右边淡出。这能用ng-隐藏或animate.css来完成吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-23 17:00:19

我找到了一个更好的方法。我用了ngAnimate,我就这样做了:

代码语言:javascript
复制
.pk-image-container {
    position: relative;
    height: 625px;

    .slide {
        position: absolute;
        left: 0;
        width: 100%;
        height: 625px;
    }

    .slide.ng-enter {
        transition: 0.3s linear all;
        left: 100%;
    }

    /* The finishing CSS styles for the enter animation */
    .slide.ng-enter.ng-enter-active {
        left: 0;
    }

    /* now the element will fade out before it is removed from the DOM */
    .slide.ng-leave {
        transition: 0.3s linear all;
    }

    .slide.ng-leave.ng-leave-active {
        left: -100%;
    }
}

并将HTML更新为:

代码语言:javascript
复制
<div class="pk-image-container" ng-if="!multiple">
    <div class="slide" ng-repeat="answer in question.answers track by $index" ng-if="$index === currentSlide"></div>
</div>
票数 0
EN

Stack Overflow用户

发布于 2016-08-23 15:56:00

您可以在项上使用额外的.active类并设置left: 0。否则,可以将所有项设置为left: 100%。要设置类,可以使用ng-class

CSS:

代码语言:javascript
复制
.pk-image-container {
  position: relative;
  height: 625px;
  .animate-hide {
    position: absolute;
    left: 100%;
    opacity: 1;
    transition: all ease 1s;
    height: 625px;
    width: 100%;
    &.ng-hide {
      left: -100%;
      opacity: 0;
    }
    &.active {
      left: 0;
    }
  }
}

HTML:

代码语言:javascript
复制
<div class="pk-image-container" ng-if="!multiple">
    <div ng-class="[animate-hide, {'active': $index === currentSlide}]" ng-repeat="answer in question.answers track by $index" ng-hide="$index !== currentSlide"></div>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39105513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档