私が間違っていなければ、あなたは以下のようなものを探しています。これheight
により、現在ターゲットになっている要素の が 20px に設定されます。トランジション効果も適用されます。
HTML:
<a href='#first'>First</a>
<a href='#second'>Second</a>
<div id='first'>This is first div</div>
<div id='second'>This is second div</div>
CSS:
#first, #second {
height: 0px;
overflow: hidden;
transition: height 1s ease-in;
}
#first:target {
height: 20px;
}
#second:target {
height: 20px;
}
デモフィドル
編集: jQuery/JavaScript にタグを付けておらず、CSS ソリューションを探していたことは知っています。ただし、そのようなリンクが多数あり、JS ベースのソリューションを使用しても問題ない場合は、以下を試すことができます。
id
このスクリプトには、クリックheight
されたリンクの と、リンクがクリックされたときにボックスが持つはずの との間のマッピングがあります。それに基づいて、#box
要素の高さが変更されます。このfiddleに見られるように、トランジションも機能します。
window.onload = function () {
document.getElementsByTagName('body')[0].onclick = function(e){
var box = document.getElementById('box');
var heights = { first: '20px', second: '40px', third: '30px' };
if(e.target.id)
box.style.height = heights[e.target.id];
};
}