簡體   English   中英

如何獲得動畫但仍然隱藏ol?

[英]How to get animation but still hide ol?

我的訂購清單有問題,我想要動畫,但我也希望隱藏訂購清單。 當列表未打開時,列表之間存在間隙。

所以我的問題是:如何使有序列表display: none並且在關閉時仍display: none動畫。 如何將列表作為標准關閉?

 function loadul(name) { var elem = $('#' + name); if (elem.hasClass('show-list')) { elem.removeClass('show-list'); elem.addClass('hide-list') elem.data('height', elem.outerHeight()) elem.css('height', '0px') } else { elem.removeClass('hide-list'); elem.addClass('show-list') elem.css('height', elem.data('height')) } } 
 .sub-list { overflow: hidden; transition: all 300ms; } .hide-list { display: none; } 
 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <li id="work" OnClick="loadul('list1')"> List </li> <ol class="sub-list show-list" id="list1"> <li>item</li> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ol> <li id="work" OnClick="loadul('list2')"> List </li> <ol class="sub-list show-list" id="list2"> <li>item</li> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ol> 

您可以使用默認的bootstrap .collapse類進行這種折疊。

Bootstrap崩潰附帶默認的幻燈片動畫

嘗試這個

 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <div class="lists"> <span data-toggle="collapse" data-target="#demo">List Number 1</span> <ul id="demo" class="collapse"> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ul> </div> <div class="lists"> <span data-toggle="collapse" data-target="#demo1">List Number 2</span> <ul id="demo1" class="collapse"> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ul> </div> </body> </html> 

正如@Viira對您的問題進行評論時,您似乎可以為此使用jQuery手風琴(因為您已經包含jQuery)。 我在這里用您的數據制作了一個示例: https : //jsfiddle.net/kr4qhy9m/

HTML:

<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div id="accordion">
  <h3>List 1</h3>
  <div>
    <ol>
      <li>item</li>
      <li>item</li>
      <li>item</li>
      <li>item</li>
      <li>item</li>
    </ol>
  </div>
  <h3>List 2</h3>
  <div>
    <li>item</li>
    <li>item</li>
    <li>item</li>
    <li>item</li>
    <li>item</li>
  </div>
</div>

使用Javascript:

$(function() {
    $("#accordion").accordion();
});

而不是display:none您可以為ul設置min-height的動畫我為動畫添加了min-height ,我更改了html因為它無效

 function loadul(name) { var elem = $('#' + name); if (elem.hasClass('show-list')) { elem.removeClass('show-list'); elem.addClass('hide-list') elem.data('height', elem.outerHeight()) elem.css('height', '0px') } else { elem.removeClass('hide-list'); elem.addClass('show-list') elem.css('height', elem.data('height')) } } 
 .sub-list { overflow: hidden; transition: all 300ms; min-height: 100px; } .hide-list { min-height: 0; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <div id="work" OnClick="loadul('list1')"> List </div> <ol class="sub-list show-list" id="list1"> <li>item</li> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ol> </div> <div> <div id="work" OnClick="loadul('list2')"> List </div> <ol class="sub-list show-list" id="list2"> <li>item</li> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ol> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM