如何为此手风琴添加动画?

时间:2017-10-24 04:15:32

标签: javascript jquery html css animation

所以我在互联网上找到了这个很棒的手风琴,我希望通过动画来使它更加精彩。 我对动画很新,所以我无法绕过它。我如何使用https://daneden.github.io/animate.css/

中的SlideDown动画

我在网上找到的这支手风琴 http://cssdeck.com/labs/5jlzqlt6

我尝试了什么。 我试着改变

.accordion:target{display:block;}

从此

#accordion{margin:100px auto;width:400px;}
#accordion ul{list-style:none;margin:0;padding:0;}
.accordion{display:none;}
.accordion:target{display:block;}
#accordion ul li a{text-decoration:none;display:block;padding:10px;}
.accordion{padding:4px;}

对此..

#accordion{margin:100px auto;width:400px;}
#accordion ul{list-style:none;margin:0;padding:0;}
.accordion{display:none;}
.accordion:target{display:block; animation-name: bounce; transform-origin: center bottom;}
#accordion ul li a{text-decoration:none;display:block;padding:10px;}
.accordion{padding:4px;}

我试过玩它但似乎什么都没有用。 我该怎么做?


修改
我得到了它的工作,但有一个小问题.. 我的盒子只能使用100px ..我尝试将其更改为自动,但删除了幻灯片效果

这是我改变的那个

.accordion:target{-webkit-transition: all 150ms ease-in-out; transition: all 150ms ease-in-out; height: 100px}

正如你所看到的那样,盒子不会改变大小。 最后一个是溢出的。 https://i.imgur.com/D1BpaPO.gifv

https://jsfiddle.net/r6f6jbvy/

2 个答案:

答案 0 :(得分:1)

您无法为具有display:none属性的元素设置动画。这是一个简单的动画,动画不透明度和身高值

.accordion {
  opacity: 0;
  height: 0;
  transition: all 500ms ease;
  padding: 0;
}

.accordion:target {
  opacity: 1;
  height: 100px;
  padding: 4px;
}

如果你想使用animate.css库,你需要使用Javascript并在用户点击它时将.slideInUp.animated类添加到你的元素中。

body {
  background: #d0d0d5;
}


/*  Basic stucture
=====================*/

#accordion {
  margin: 100px auto;
  width: 400px;
}

#accordion ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.accordion {
  opacity: 0;
  height: 0;
  transition: all 500ms ease;
  padding: 0;
}

.accordion:target {
  opacity: 1;
  height: 100px;
  padding: 4px;
}

#accordion ul li a {
  text-decoration: none;
  display: block;
  padding: 10px;
}


/*  Colors 
====================*/

#accordion ul {
  /*box-shadow*/
  -webkit-box-shadow: 0 4px 10px #BDBDBD;
  -moz-box-shadow: 0 4px 10px #BDBDBD;
  box-shadow: 0 4px 10px #BDBDBD;
  /*border-radius*/
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}

#accordion ul li a {
  background: #fff;
  border-bottom: 1px solid #E0E0E0;
  color: #999;
}

.accordion {
  background: #fdfdfd;
  color: #999;
}

.accordion:target {
  border-top: 3px solid #FFCDCD;
}
<div id="accordion">
  <ul>
    <li>
      <a href="#one">Example one</a>
      <div id="one" class="accordion">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet in laborum praesentium esse aliquam molestiae animi non facilis perspiciatis corporis ad molestias quo harum suscipit ipsum incidunt ea voluptates accusantium.
      </div>
    </li>
    <li>
      <a href="#two">Example two</a>
      <div id="two" class="accordion">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet in laborum praesentium esse aliquam molestiae animi non facilis perspiciatis corporis ad molestias quo harum suscipit ipsum incidunt ea voluptates accusantium.
      </div>
    </li>
    <li>
      <a href="#three">Example three</a>
      <div id="three" class="accordion">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet in laborum praesentium esse aliquam molestiae animi non facilis perspiciatis corporis ad molestias quo harum suscipit ipsum incidunt ea voluptates accusantium.
      </div>
    </li>
  </ul>
</div>

答案 1 :(得分:0)

使用css height属性和转换。将高度设置为零以隐藏元素。使用不同的类并使用javascript更改它们。