无论如何我可以动画从下到上而不是从上到下更改 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
});
$('div').slideUp();
这使用.slideUp()将 div 设置为0px
从下到上的高度
您可以通过同时为顶部和高度设置动画来实现此效果。您只需要确定最终高度。
例如,假设您有:
#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" } );
});