简体   繁体   English

动画在有序列表上

[英]Animation on a ordered list

How do i make an animation on this ordered list? 如何在此有序列表上制作动画?

I want the ordered list to open from the top to the bottom by useing ".hide" and ".show" but i cant get it to work. 我希望通过使用“ .hide”和“ .show”从顶部到底部打开有序列表,但我无法使其正常工作。 dose anyone know how to do with CSS or Javascript? 有人知道如何使用CSS或Javascript吗?

Looking for help 寻求帮助

<!DOCTYPE html>
<html>
<head>
<script>

function loadul (name)
{
  var elem = document.getElementById(name);
  if(elem.style.display == "block")
  { 
      elem.style.display = "none";
      $("#work").click(function(){
        $(".test").hide(1000);
        });
  }
  else
  { 
      elem.style.display = "block";
      $("#work").click(function(){
        $(".test").show(1000);
        });
  }
}
</script>
</head>
<body>

<li id="work" OnClick="loadul('CTR')">List</li>
<ol class="test" id="CTR">
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
<li>item</li>
</ol>

</body>
</html>

Hope this can help you, you can change the transition animation in the sub-list class. 希望对您有所帮助,您可以在子列表类中更改过渡动画。 I'm adding an removing the "show-list" and "hide-list" class just to do a toggle. 我添加一个删除“ show-list”和“ hide-list”类只是为了进行切换。

<!DOCTYPE html>
<html>
<head>
<style>
.sub-list {
    overflow: hidden;
    transition: all 300ms;
}
</style>
<script
    src="https://code.jquery.com/jquery-3.3.1.min.js"
    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    crossorigin="anonymous"></script>
<script>

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'))
  }
}
</script>
</head>
<body>

<li id="work" OnClick="loadul('CTR')">
    List
</li>
<ol class="sub-list show-list" id="CTR">
        <li>item</li>
        <li>item</li>
        <li>item</li>
        <li>item</li>
        <li>item</li>
 </ol>

</body>
</html>

Below is an example of how I would structure your html and javascript. 以下是我将如何构造您的html和javascript的示例。 I've changed your external li to something that might make a little more sense. 我已将您的外部用户更改为可能更有意义的内容。 And since you've shown you are using jQuery i've used .each() in order to iterate through your li elements one at a time multiplying a delay based on their index. 并且由于您已经显示了使用的是jQuery,所以我使用.each()来一次遍历li元素,并根据它们的索引乘以一个延迟。 Here's a Pen example as well. 这也是Pen的例子。

HTML: HTML:

<button id="work" OnClick="loadul('CTR')">List</button>
<ol class="test no-margin" id="CTR">
  <li>item</li>
  <li>item</li>
  <li>item</li>
  <li>item</li>
  <li>item</li>
</ol>

Javascript: 使用Javascript:

function loadul(name) {
  $("#" + name + " li").each(function(index) {
    if ($(this).is(":visible")) {
      $(this)
        .delay(1000 * index)
        .hide(0);
    } else {
      $(this)
        .delay(1000 * index)
        .show(0);
    }
  });
}

CSS: CSS:

ol.no-margin {
  margin-top: 0px;
  margin-bottom: 0px;
}

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

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