我一直在手风琴工作,但由于奇怪的原因,以下代码:
<style> .collapse { position: relative; height: 0; overflow: hidden; -webkit-transition: height .35s ease; -moz-transition: height .35s ease; -o-transition: height .35s ease; transition: height .35s ease; } .collapse.in { height: auto; } </style> <div class="accordion"> <div class="something"> <a class="" >Accordion Pane 1</a> </div> <div class="accordion-body collapse"> <div class="accordion-inner"> content </div> </div> </div> <script> $('.something').click(function(event){ event.preventDefault(); $(this).next('.accordion-body').toggleClass('in'); }) </script>
似乎没有工作.高度不动画.我不知道为什么
非常感谢提前.
解决方法
我想你需要设置一个特定的高度而不是自动,以便在高度上发生转换.
.collapse { height: 0; position: relative; overflow: hidden; -webkit-transition: height 1.35s ease; -moz-transition: height 1.35s ease; -o-transition: height 1.35s ease; transition: height 1.35s ease; background-color: #cecece; } .collapse.in { height: 200px; /*Set the height here*/ }
或者另一个选项在最大高度上转换,就像最接近不可能的最大高度.
.collapse { max-height:0px; position: relative; overflow: hidden; -webkit-transition: max-height 0.35s ease-in-out; -moz-transition: max-height 0.35s ease-in-out; -o-transition: max-height 0.35s ease-in-out; transition: max-height 0.35s ease-in-out; background-color: #cecece; } .collapse.in { max-height:1000px; }
这是this page的报价:
Transitioning gradients: Not every CSS property can be transitioned,and the basic rule is that you can only transition through absolute values. For example,you can’t transition between a height of 0px to auto. The browser can’t calculate the intermediate transition values,so the property change is instant.