簡體   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