【问题标题】:angularjs Click button to show next / previous divangularjs 点击按钮显示下一个/上一个 div
【发布时间】:2017-03-09 00:11:52
【问题描述】:

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

快速图像:

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

  • 如果我按下 Next 按钮,顶部 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>

如果可能的话,它真的会帮助我。

【问题讨论】:

  • 我对此的建议(对于性能和您自己的理智),将显示行为分离到一个样式文件中,并且只使用类来实现幻灯片效果。因此,您可以在当前 div 中添加类似 .active 的类,并在调用下一个时将其删除。所以,当移除一个类时,你可以触发效果,但不能让它依赖于你的 JS。请记住,JS 用于逻辑,CSS 用于样式(以及区分两者的智慧)。
  • “滑开”然后消失?
  • 是的!它会消失:)
  • 好的。于是这张卡就消失了。然后按上一个。怎么了?它不知从何而来,还是什么?
  • 好的,当你按下一步时它会隐藏。然后,如果您按上一个,它将再次出现。只是它会按顺序排列。

标签: javascript angularjs


【解决方案1】:

好的,这很有趣。这是你如何做到的。通过点击按钮可以计算新顶牌的索引。任何指数低于新计算的指数的东西都应该被隐藏。为了隐藏带有漂亮动画的卡片,最好使用带有任意转换规则的 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

【讨论】:

  • 演示链接我猜是旧链接!但我实现了上述一个并且工作完美。但是现在我很难过,因为我对纯编程没有太多了解:(我需要学习更多。我不想说谢谢。这远不止于此。但我意识到我需要有对编程有更好的理解。你的任何建议都会对我有好处:)
  • 是的,我更新了链接。不要难过,我们都在学习。没有人什么都知道,你尝试和练习的越多,你就会越快成为更好的程序员。这并不容易,但它非常有益 - 所以这完全取决于你。同时这并不难——你只需要每天学习。祝你好运!
  • 嗨,我看到你添加了 {{index}} 来显示索引号。这是否可以显示剩余的 div 数?我还添加了一个删除按钮,它会在每次点击时删除顶部 div:plnkr.co/edit/HZtqmzqVgPKkh94SOfR2?p=preview
  • 试试cards.length - ($index - 1): plnkr.co/edit/v07ek5hQsfgAdSMqnLXu?p=preview
  • 只有你 index 对真正的数组项索引 +1。
猜你喜欢
  • 2016-07-03
  • 2017-01-11
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多