【问题标题】:Automatically Adjust Height Showing Slide Content显示幻灯片内容的自动调整高度
【发布时间】:2016-07-03 10:25:06
【问题描述】:

我正在使用 angular 和 angular animate 来隐藏和显示具有向上/向下滑动效果的内容 - 类似于 jQuery show。

但是,当我有一张幻灯片时,这效果很好。现在我有多个大小不同的代码,我该如何调整代码,以便自动计算和调整要显示的元素(div 或表单)的高度,而不是预先定义?

HTML:

<h2 ng-click="showSpoons = !showSpoons">Show Spoons +</h2>
<div ng-show="showSpoons" class="animate-slide-up">
  <p>Spoon</p><p>Spoon</p><p>Spoon</p>
  <p>Spoon</p><p>Spoon</p><p>Spoon</p>
  <p>Spoon</p><p>Spoon</p><p>Spoon</p>
  <p>Spoon</p><p>Spoon</p><p>Spoon</p>
</div>
<br>
<h2 ng-click="showForks = !showForks">Show Forks +</h2>
<div ng-show="showForks" class="animate-slide-up">
  <p>Fork</p><p>Fork</p><p>Fork</p>
  <p>Fork</p><p>Fork</p><p>Fork</p>
</div>
<br>
<h2 ng-click="showCups = !showCups">Show Cups +</h2>
<div ng-show="showCups" class="animate-slide-up">
  <p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p>
  <p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p>
  <p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p>
  <p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p>
  <p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p><p>Cups</p>
</div>

CSS:

.ng-hide-add, .ng-hide-remove {
    /* ensure visibility during the transition */
    display: block !important; /* yes, important */
}

.animate-slide-up {
    transition: .25s linear all;
    height: 10em;
    overflow: hidden;
}

.animate-slide-up.ng-hide {
    height:0;
}

Plunker:https://plnkr.co/edit/t7oVw3n3oTxuPaPLo38a?p=preview

【问题讨论】:

  • 尝试设置min-height: 10em;而不是heigh: 10em;
  • 您真的希望幻灯片大小相同,否则会跳出页面。或者您可以使用额外的最小空格。

标签: javascript angularjs css


【解决方案1】:

您几乎为幻灯片定义了一个固定的height 值。您可以使用height: auto;,而不是使用固定值。根据幻灯片内容,这将为您的幻灯片提供自动生成的高度值。所以基本上,你需要的是这样的:

.animate-slide-up {
    transition: .25s linear all;
    height: auto;
    overflow: hidden;
}

【讨论】:

    【解决方案2】:

    plnkr

    使用这个,

    .animate-slide-up {
        transition: .25s linear all;
        min-height: 10em;
        overflow: hidden;
    }
    

    【讨论】:

    • 如果你只有 1 个

      元素,这将无法正常工作,因为短文本不需要有 10em 的高度。话虽如此,这不是处理这个问题的正确方法。

    • 这个最小高度是例子..用户也可以设置小于这个..或者设置为自动。
    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2013-04-04
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多