ここで、私には理解できないことがあります。
簡単な例を次に示します: http://jsfiddle.net/MrkMZ/
HTML:
<div id="box">
<div id="top"><a href="#">top text</a></div>
<div id="bottom"><a href="#">bottom text</a></div>
</div>
CSS:
#box {
width: 200px;
height: 200px;
background-color: yellow;
position: relative;
}
#top {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 50px;
background-color: #ff0000;
}
#top a {
margin-top: 20px;
display: inline-block;
}
#bottom {
position: absolute;
bottom: 0;
left: 0;
width: 200px;
height: 30px;
background-color: #ff0000;
}
JS:
$('#box').hover(
function(){
$(this).find('#top, #bottom').slideUp(300);
},
function(){
$(this).find('#top, #bottom').slideDown(300);
}
);
ご覧のとおり、ボックスの上にカーソルを置くと、上部と下部の div が正しくスライドしますが、上部と下部の div 内のテキストは、スライドすると異なる動作をします。下部のテキストが div とともに下にスライドする間、上部のテキストはそのままです。
とにかく一番上のテキストスライドを作るには?または、スライドする代わりに下部のテキストを固定します。
slideDown/slideUp では、jQuery は要素の高さを変更します。
唯一の違いは、1 つが上: 0 で、下が下: 0 であることです。それだけで、この奇妙な効果が生じます。
ここで何が欠けていますか?