css – 灌装水动画

前端之家收集整理的这篇文章主要介绍了css – 灌装水动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图擦拭动画,使一个圆看起来像它充满了水。我遇到了两个错误,甚至无法解决第三个问题:

>它填补了错误的方式
>它填满后重置为空(黑色)*
>现在,我使用< img>标签,但我想将此效果移动到body {background-image:},需要一些方向如何做到这一点。

What I have tried so far:

#banner {
  width: 300px;
  height: 300px;
  position: relative;
}
#banner div {
  position: absolute;
}
#banner div:nth-child(2) {
  -webkit-animation: wipe 6s;
  -webkit-animation-delay: 0s;
  -webkit-animation-direction: up;
  -webkit-mask-size: 300px 3000px;
  -webkit-mask-position: 300px 300px;
  -webkit-mask-image: -webkit-gradient(linear,left bottom,left top,color-stop(0.00,rgba(0,1)),color-stop(0.25,color-stop(0.27,0)),color-stop(0.80,color-stop(1.00,0)));
}
@-webkit-keyframes wipe {
  0% {
    -webkit-mask-position: 0 0;
  }
  100% {
    -webkit-mask-position: 300px 300px;
  }
}
<div id="banner">
  <div>
    <img src="http://i.imgur.com/vklf6kK.png" />
  </div>
  <div>
    <img src="http://i.imgur.com/uszeRpk.png" />
  </div>
</div>

给它一个默认掩码位置为@anpsmn建议,不会重置它黑色了。

解决方法

@H_301_17@ 这可以用一个div和一个 ::before pseudo element:来实现

> #banner给出了border-radius:50%来创建一个圆和overflow:hidden来剪切它的孩子
> :: before伪元素被动画化为100%高度,动画使用the forwards value以100%暂停。它从底部开始,使用底部:0
>背景图片将应用于#banner和#banner ::之前的黑色和蓝色背景

兼容性:IE10和所有现代浏览器。 -webkit-前缀属性很可能不再是关键帧动画所必需的。 Check the browser compatibility chart over here on caniuse.com

工作示例

添加了立方贝塞尔曲线(.2,.6,.8,.4)which is explained in @ChrisSpittles answer.它提供了一个整洁的效果

#banner {
  width: 300px;
  height: 300px;
  position: relative;
  background: #000;
  border-radius: 50%;
  overflow: hidden;
}
#banner::before {
  content: '';
  position: absolute;
  background: #04ACFF;
  width: 100%;
  bottom: 0;
  animation: wipe 5s cubic-bezier(.2,.6,.8,.4) forwards;
}
@keyframes wipe {
  0% {
    height: 0;
  }
  100% {
    height: 100%;
  }
}
<div id="banner">

</div>

猜你在找的CSS相关文章