6

无论如何我可以动画从下到上而不是从上到下更改 div 框高度?

这个 div 框是绝对定位的,它的作用有点像它下面的内容的窗帘。

4

3 回答 3

5

为什么不使用slideUp()/ slideDown()

因为如果注册了多个/快速鼠标操作,它很容易出现错误。
在演示中尝试,即使使用.stop()方法也无法达到如下结果:


这是使用.animate()和高度切换的轻微修改:(只需要position:absolute; bottom:0px; display:none;:)

演示 1(一个很好的方法)

$('.box').hover(function(){
  $(this).find('.curtain').stop().animate({height: 'toggle'});
});

演示 2

另一种方法是:

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
});
于 2012-05-21T14:46:05.850 回答
0
$('div').slideUp();

这使用.slideUp()将 div 设置为0px从下到上的高度

于 2012-05-21T14:35:46.683 回答
0

您可以通过同时为顶部和高度设置动画来实现此效果。您只需要确定最终高度。

例如,假设您有:

#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" } );
});
于 2013-04-24T18:12:26.643 回答