2011-04-26 7 views
0

コードがあります(簡体字)。私は "高さの直線2秒"の移行をしたい。 display:blockとdisplay:noneプロパティを使用してそれを行う方法はありますか?私はコンテンツの高さを指定したくありません。-WEBKIT-TRANSITION表示スタイル

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<script type="text/javascript"> 
const classes = new Array("shown", "hidden"); 
const classesCount = 2; 
var curClass = 0; 
function switchClass() { 
    document.getElementById("divel").className=classes[curClass = (curClass + 1) % classesCount]; 
} 
</script> 
<style type="text/css"> 
    .hidden { 
     display:none; 
     -webkit-transition-property: height; 
     -webkit-transition-duration: 2s; 
     -webkit-transition-timing-function: linear; 
    } 
    .shown { 
     display:block; 
     -webkit-transition-property: height; 
     -webkit-transition-duration: 2s; 
     -webkit-transition-timing-function: linear; 
    } 
</style> 
</head> 
<body> 
    <button onclick="switchClass()">Press me</button> 
    <div id="divel" class="shown"> 
     Hello World<br> 
     Hello World<br> 
     Hello World<br> 
    </div> 

</body> 
</html> 

答えて

0

の移行が失敗することを例があります。

  1. display: none
  2. height: auto

..だから私はトランジションを行うためにCSSを変更する必要があります。ここではデモは次のとおりです。http://jsbin.com/axijaz/4

しかし、height:auto + max-height + min-heightは、同様の効果を再現することができます

http://jsbin.com/axijaz/8/edit

注:

  1. 最小 - 最大は異なる大きな持っている場合は、あなたが必要があるかもしれません(ポイント2を参照)
  2. min-heightのみまたはmax-heightトランジションの片側のみ(バージョン67を参照)

をトリガまたはラッパーとjsのコードを使用して喜んでいる場合、誰かがすでに解決にhere

を与えるだけで、それが役立つことを願って。

関連する問題