とにかく、上から下ではなく、下から上へのdivボックスの高さの変化をアニメーション化できますか?
この div ボックスは絶対位置にあり、その下のコンテンツへのカーテンのような役割を果たします。
とにかく、上から下ではなく、下から上へのdivボックスの高さの変化をアニメーション化できますか?
この div ボックスは絶対位置にあり、その下のコンテンツへのカーテンのような役割を果たします。
使用しない理由slideUp()
/ slideDown()
:
複数の/速いマウス操作が登録されている場合、バグが発生しやすいためです。
以下のような結果を得ることができない方法を
使用しても、デモで試してみてください。.stop()
これは、高さの切り替えを使用してわずかに変更したもの.animate()
です: (ちょうど必要: position:absolute; bottom:0px; display:none;
)
$('.box').hover(function(){
$(this).find('.curtain').stop().animate({height: 'toggle'});
});
別の方法は次のとおりです。
var boxHeight = $('.box').innerHeight(); // get element height
$('.curtain').css({top:boxHeight}); // push 'curtain' down
$('.box').hover(function(){
$(this).find('.curtain').stop().animate({top: 0}); // animate to desired top distance
},function(){
$(this).find('.curtain').stop().animate({top: boxHeight}); // and on mouseout - back down
});
この効果は、上部と高さを同時にアニメートすることで実現できます。最終的な高さを決定する必要があります。
たとえば、次のものがあるとします。
#mydiv{
top: 200px;
height: 300px;
width: 100px;
background-color: red;
position: absolute;
};
そして、次のようにアニメーション化された div で終了したい:
#mydiv{
top: 0px; /* new top */
height: 500px; /* new height */
width: 100px;
background-color: red;
position: absolute;
};
jquery コード、div をクリックすると:
$("#mydiv").on("click", function(){
$('#mydiv').animate( {"top": "0px", "height": "500px" } );
});
$('div').slideUp();
これは.slideUp()を使用して、div を0px
下から上の高さにアニメーション化します