如何通过jquery或css3的方法给after伪元素产生动画?

<div class="ani"></div>
.ani{position:relative;width:100px;height:100px;background:red;}
.ani:before{
  content:"";
  position:absolute;
  width:100px;
  height:100px;
  background:rgba(0,0,0,.5);
  top:0;
  left:0;
}

我想给after伪元素的height 从 100px 变化到 0,产生一个很简单的动画效果?
不知道该如何去做?

阅读 4.7k
3 个回答
.ani{position:relative;width:100px;height:100px;background:red; }
.ani:before{
  content:"";
  position:absolute;
  width:100px;
  height:100px;
  background:rgba(0,0,0,.5);
  top:0;
  left:0;
  transition:all 0.5s;
}
.ani:hover:before{
    height:0;
}

其他不变,就定义一个动画,然后调用就可以了吖

.ani:before{
  -webkit-animation: ani 3s infinite;
  animation: ani 3s infinite;
}
@-webkit-keyframes ani {
  0% {height: 100px;}
  100% {height: 0;}
}
@keyframes ani {
  0% {height: 100px;}
  100% {height: 0;}
}
.ani:before{
animation:change 2s;
}
@keyframes change
{
from {top:100px;}
to {top:0px;}
}
/*没有兼容性的写法,具体可以自行看animation/keyframes两个属性。*/
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题