angularjs单击按钮显示下一个/上一个div

时间:2015-04-10 14:46:02

标签: javascript angularjs

我有一堆用ng-repeat创建的Div。的 Plunker

快速图片:

enter image description here

是否可以像滑块一样创建这个div工作堆栈?喜欢:

  • 如果按下“下一步”按钮,顶部div将滑开,第二个顶部将显示。
  • 按上一个按钮将显示上一个div,如果有的话。

代码:

<div class="col-md-2-4" 
     ng-repeat="card in cards" 
     ng-style="{left: 2 * $index + 'px', top: 2 * $index + 'px', 'z-index': (cards.length - $index)}">
<ul class="list-unstyled cs-tag-item-grp">
   <li class="clearfix" ng-repeat="value in card.cardItem">
     <div class="pull-left">
          {{value.keys}}
      </div>
    </li>
</ul>
<div class="keys">
  <button type="button" class="btn btn-pre">Previous</button>
  <button type="button" class="btn btn-next">Next</button>
</div>

如果可能,这对我有帮助。

1 个答案:

答案 0 :(得分:3)

好的,这很有趣。这是你如何做到的。通过单击按钮,可以计算新顶卡的索引。索引低于新计算值的任何东西都应隐藏。为了隐藏具有漂亮动画的卡片,使用具有任意转换规则的CSS类是最佳的。

结果HTML看起来像这样:

<div class="col-md-2-4" 
    ng-class="{'card-hide': index  > $index + 1}"
    ng-repeat="card in cards" 
    ng-style="{left: 2 * $index + 'px', top: 2 * $index + 'px', 'z-index': (cards.length - $index)}">

    <ul class="list-unstyled cs-tag-item-grp">
        <li class="clearfix" ng-repeat="value in card.cardItem">
            <div class="pull-left">
                {{value.keys}}
            </div>
        </li>
    </ul>
</div>
<div class="keys">
  <button type="button" class="btn btn-next" ng-click="index = index < cards.length ? index + 1 : cards.length">Next</button>
  <button type="button" class="btn btn-pre" ng-click="index = index > 1 ? index - 1 : 1">Previous</button>
</div>

其中起始索引在控制器中定义为:

$scope.index = 1;

幻灯片/淡入淡出效果由非常简单的CSS规则处理:

.card-hide {
    left: -100px !important;
    opacity: 0 !important;
}

演示: http://plnkr.co/edit/tLVJrpqavKbHvKzMljNG?p=preview