首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS -在启动另一个动画之前等待动画结束

AngularJS -在启动另一个动画之前等待动画结束
EN

Stack Overflow用户
提问于 2016-07-22 13:33:37
回答 1查看 789关注 0票数 0

我有一个边栏,里面有一个列表。当我点击一个按钮时,边栏元素会随着淡出而消失,边栏的宽度会随着动画而减小。

我需要等待边栏元素消失,然后才能减少边栏的宽度。

如何在使用AngularJS启动另一个动画之前等待动画?

编辑

这里是我所拥有的一个小提琴:https://jsfiddle.net/Booggi/65s7Lvxr/

在这里我的侧边栏:

代码语言:javascript
复制
<div class="sidebar" id="sidebar">
  <div class="list-group">
    <a href="#" class="list-group-item">Library</a>
    <a href="#" class="list-group-item">Stats</a>
    <a href="#" class="list-group-item">History</a>
  </div>
</div>

CSS:

代码语言:javascript
复制
body, html {
  height: 100%;
}

.sidebar {
  float: left;
  width: 150px;
  height: 100%;
  margin-right: 10px;
  padding-top: 50px;
  background: #3F3F3F;
  transition: width 0.3s ease;
  overflow: hidden;
}

@media (max-width: 764px) {
  .sidebar {
    width: 10px;
  }

  .sidebar .list-group .list-group-item {
    display: none;
  }
}

.sidebar-toggle {
  width: 10px;
}

.sidebar .list-group .list-group-item {
  border-radius: 0;
  border: none;
  background: #AFAFAF;
}

.sidebar .list-group .list-group-item:not(:last-child) {
  margin-bottom: 1px;
}

.sidebar-toggle .list-group .list-group-item {
  display: none;
}

我想删除边栏列表与淡出,然后,折叠我的侧边栏。

当我切换侧边栏时,我打开它,在这个动画之后,显示我的列表。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-22 14:22:06

使用transition-delay: 2s;可以完成工作,检查代码片段

代码语言:javascript
复制
var toggleSidebarBtn = document.querySelector("#toggle-sidebar");
toggleSidebarBtn.onclick = function() {
  document.querySelector(".sidebar").classList.toggle("sidebar-toggle");
}
代码语言:javascript
复制
body, html {
  height: 100%;
}

.sidebar {
  float: left;
  width: 150px;
  height: 100%;
  margin-right: 10px;
  padding-top: 50px;
  background: #3F3F3F;
  transition: width 2s ease;
  transition-delay: 2s;
  overflow: hidden;
}

.list-group-item{
  transition: opacity 2s ease;
}

@media (max-width: 764px) {
  .sidebar {
    width: 10px;
  }
  
  .sidebar .list-group .list-group-item {
    display: none;
  }
}

.sidebar-toggle {
  width: 10px;
}

.sidebar .list-group .list-group-item {
  border-radius: 0;
  border: none;
  background: #AFAFAF;
}

.sidebar .list-group .list-group-item:not(:last-child) {
  margin-bottom: 1px;
}

.sidebar-toggle .list-group .list-group-item {
  opacity: 0;
}

.content {
  height: 100%;
  overflow: hidden;
}
代码语言:javascript
复制
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar" id="sidebar">
  <div class="list-group">
    <a href="#" class="list-group-item">Library</a>
    <a href="#" class="list-group-item">Stats</a>
    <a href="#" class="list-group-item">History</a>
  </div>
</div>

<div class="content">
  <div class="container-fluid">
    <div class="page-header">
      <h2>Music Library <small>by Mathieu Brochard</small></h2>
    </div>
    
    <div class="row">
      <div class="form-group col-sm-6 col-md-4">
        <div class="input-group">
          <input type="text" class="form-control" placeholder="Search artist, genre or rate" />
          <span class="input-group-addon">
            <span class="glyphicon glyphicon-search"></span>
          </span>
        </div>
      </div>
    </div>
    
    <table class="table table-striped table-hover">
      <tr>
        <th>Artist</th>
        <th>Genre</th>
        <th>Rate</th>
      </tr>
      <tr>
        <td>The Beatles</td>
        <td>Rock'n'Roll</td>
        <td>5</td>
      </tr>
      <tr>
        <td>Kaaris</td>
        <td>Rap</td>
        <td>1</td>
      </tr>
    </table>
    
    <button class="btn btn-primary" id="toggle-sidebar">Add artist</button>
  </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38527822

复制
相关文章

相似问题

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