Angular / animate Bootstrap元素(输入组)

时间:2015-02-05 01:55:13

标签: javascript css angularjs twitter-bootstrap

Plunkr就在这里

绝对不是CSS过渡/大师,但我想点击输入中的图标幻灯片。我有这个工作,但一旦动画完成,我的图标会爆炸到包含div的宽度,我不知道为什么。

标记

  <form class="form">
    <div class="input-group col-sm-5">
      <span class="btn btn-default input-group-addon" ng-click="hideInput = !hideInput">
          <span class="glyphicon glyphicon-flag"></span>
      </span>
      <input class="form-control animate-hide" ng-hide="hideInput" />
    </div>
  </form>

样式

.animate-hide {
  -webkit-transition: all linear 0.75s;
  -o-transition: all linear 0.75s;
  transition: all linear 0.75s;
}
.animate-hide.ng-hide {
  width: 0;
}
.glyphicon-flag {
  color: #d9534f !important;
}

当动画完成时按钮的扩展效果非常好。

1 个答案:

答案 0 :(得分:2)

问题是Bootstrap将display的CSS input-group-addon属性设置为table-cell。动画完成后,隐藏输入,使标志图标展开以占用所有剩余空间。您可以通过各种方式解决此问题,一个简单的选择是在输入后添加空span。例如:

<form class="form">
  <div class="input-group col-sm-5">
    <span class="btn btn-default input-group-addon" ng-click="hideInput = !hideInput">
      <span class="glyphicon glyphicon-flag"></span>
    </span>
    <input class="form-control animate-hide" ng-hide="hideInput" />
    <span></span>
  </div>
</form>

示例plunker:http://plnkr.co/edit/qPvbXtEUzvWfsZPkmVRq?p=preview