繁体   English   中英

jQuery —如何使用height:auto为div设置动画

[英]jQuery — how to animate a div using height:auto

当用户按下“更多”时,我的div向下扩展。 div的高度始终是自动的,并且会相应地扩展以适合内容。

我需要保持“ height:auto”,以便在调整屏幕大小时CSS保持响应,但是我希望对不断变化的高度进行动画处理...我该怎么做?

换句话说,当用户按下更多键并将其他内容添加到此div时,我希望对div的展开进行动画处理,而不指定5em之类的特定高度。

<div id="expand">
    <p>This is the div I want to expand</p>
    <div id="hidden" style="display:none">
       <img />
       <img />
    </div>
</div>

得到它了! 我需要在而不是谢谢上使用slideToggle方法!

jsBin演示 <-调整窗口大小。 效果很好。

您可以像这样简单地进行操作:

$('.more').click(function(){
  $("+ div", this).slideToggle();
});

具有:

<button class="more">MORE</button>
<div>Lorem Ipsum...</div>

我会使用您拥有的HTML,但这就是您在Question中未显示任何代码时的价格;)

我不知道您如何设置代码,但是jQuery

$(link).on("click", function() {
   $(element).slideToggle();
});

可能为您工作。

那是您要找的东西吗?

您可以随时:

var targetDiv = $('.targetDiv');
// get original Height
var originalHeight = targetDiv.height();
// get natural height
targetDiv.css({ height: 'auto'});
var naturalHeight = targetDiv.height();
// reset div to original height
targetDiv.css({height: originalHeight});
// animate to target height
targetDiv.animate({
   height: naturalHeight}, {
   duration: 1000,
   completion: function() {
      // set height to auto
      targetDiv.css({height: 'auto'});
   });

您可以使用jQuery完成此操作。 您只需要计算height: auto绝对高度。

JSFiddle: http : //jsfiddle.net/CS2h9/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM