【源码实例】纯CSS水波纹效果和动画气泡

evinelong web前端开发

Knowlegde can change your fate and English can accomplish your future.
知识改变命运,英语成就未来。

正在分享另一个纯CSS实验工作的例子,在波形或纹波效应的水中创建动画气泡,而不使用任何图像或JavaScript。这些动画气泡也具有弹奏效果。所有这些Lab元素都是由Pure CSS创建和动画的。

以前,我用同样的概念分享了“ 纯粹的CSS ”,“ 持续不断的动画气泡 ”。那时候,我已经用了一个简单的图像用于装满半液体的锥形瓶。但是,在本教程中,我已经通过CSS创建了所有这些元素。

如果您是化学学生或访问过任何化学实验室,您可以轻松识别这些物体,如烧瓶,液体和气泡。

HTML&CSS - 玻璃瓶

起初,我们将创建一个Flask。圆底烧瓶包括开口,颈部和具有球形底部。为了在Flask中创建一个逼真的Glass效果,我已经使用了一些CSS渐变与alpha。

这是HTML代码:

<div class =“css-jar”> <div class =“flask-mouth”> </ div> <div class =“flask-neck”> </ div> <div class =“flask-base”> </ div></ div>

这是Flask的CSS代码:

.css-jar {  position: relative;  width: 195px;  margin: 49px auto 0;  text-align: center;  transform:scale(2.5);}.css-jar .flask-mouth {  background: radial-gradient(circle at 50% 55%, rgba(240, 245, 255, 0.9), rgba(240, 245, 255, 0.9) 40%, rgba(225, 238, 255, 0.8) 60%, rgba(43, 130, 255, 0.4));  width: 40px;  height: 10px;  margin: 0 auto -1px;  border-right: 1px solid rgb(43, 130, 255);  border-left: 1px solid rgb(43, 130, 255);  border-radius: 19px;  -o-border-radius: 19px;  -ms-border-radius: 19px;  -webkit-border-radius: 19px;  -moz-border-radius: 19px;}.css-jar .flask-neck {  width: 34px;  height: 46px;  margin: 0 auto -7px;  z-index: 7;  position: relative;  border-right: 1px solid rgb(43, 130, 255);  border-left: 1px solid rgb(43, 130, 255);  background: radial-gradient(circle at 50% 55%, rgba(240, 245, 255, 0.9), rgba(240, 245, 255, 0.9) 40%, rgba(225, 238, 255, 0.8) 60%, rgba(43, 130, 255, 0.4));}.css-jar .flask-base {  margin: auto;  width: 117px;  height: 97px;  border: 1px solid rgb(43, 130, 255); border-top:0 solid #FFF;  border-radius: 50%;  -o-border-radius: 50%;  -ms-border-radius: 50%;  -webkit-border-radius: 50%;  -moz-border-radius: 50%;  overflow: hidden;  position: relative;  z-index: 5;  background: radial-gradient(circle at 50% 55%, rgba(240, 245, 255, 0.9), rgba(240, 245, 255, 0.9) 40%, rgba(225, 238, 255, 0.8) 60%, rgba(43, 130, 255, 0.4));}

现在,我们创造了一个空的圆底玻璃瓶。我们必须填充液体。

用波纹涟漪创造液体/水

为了创造现实的水,我们必须在掩蔽液体层的顶部添加纹波或波浪效应。对于这个动画的液体效果,我用了两个元素。首先是水或液体,第二是波浪或波纹。

Html部分动画液体代码:

<div class="css-liquid"></div><div class="css-wave"></div>

我们将把这个html添加到div中,用“flask-base”类来创建一个装满的瓶子。现在,更新的HTML代码如下:

<div class =“css-jar”>  <div class =“flask-mouth”> </ div>  <div class =“flask-neck”> </ div>  <div class =“flask-base”>  <div class =“css-liquid”> </ div>  <div class =“css-wave”> </ div>  <div class =“css-wave”> </ div>  <div class =“css-bubble”> </ div>  <div class =“css-bubble”> </ div>  </ div>  <div class =“css-bubble”> </ div>  <div class =“css-bubble”> </ div></ div>

为了在液体中创建动画波形效果,我们更新的CSS如下:

.css-jar .css-liquid {  height: 39px;  background-color: rgb(53,238,251);  position: absolute;  bottom: 0;  left: 0;  right: 0;}.css-jar .css-wave {  width: 58px;  height: 19px;  position: absolute;  background-color: rgb(53,238,251);  left: 0;  top: 56px;  animation: css-wave 1.15s linear 1.15s infinite alternate;  -o-animation: css-wave 1.15s linear 1.15s infinite alternate;  -ms-animation: css-wave 1.15s linear 1.15s infinite alternate;  -webkit-animation: css-wave 1.15s linear 1.15s infinite alternate;  -moz-animation: css-wave 1.15s linear 1.15s infinite alternate;  border-radius: 50%;  -o-border-radius: 50%;  -ms-border-radius: 50%;  -webkit-border-radius: 50%;  -moz-border-radius: 50%;}.css-jar .css-wave + .css-wave {  left: auto;  right: 0;}

用于创建动画气泡

现在,它转向创造动画气泡。为此,我们创建了一个带有“css-bubble”类的div。对于这个新的“泡泡”元素,我已经写了一些CSS动画。

.css-jar .flask-base .css-bubble {  left: 15px;  top: 49px;  animation: css-bounce 2.65s linear 0s infinite alternate;  -o-animation: css-bounce 2.65s linear 0s infinite alternate;  -ms-animation: css-bounce 2.65s linear 0s infinite alternate;  -webkit-animation: css-bounce 2.65s linear 0s infinite alternate;  -moz-animation: css-bounce 2.65s linear 0s infinite alternate;}.css-jar .flask-base .css-bubble + .css-bubble {  left: 73px;  top: 39px;  animation-duration: 3.45s;  -o-animation-duration: 3.45s;  -ms-animation-duration: 3.45s;  -webkit-animation-duration: 3.45s;  -moz-animation-duration: 3.45s;}

所有动画的CSS

所有的动画都是用高级CSS 3制作的。

@keyframes css-wave { from { transform: translateX(97px); } to { transform: translateX(-97px); }}@keyframes css-bounce { 0% { transform: translate(5px, 15px); } 50% { transform: translate(0, -15px); } 100% { transform: translate(-5px, -36px); opacity: 1; }}@keyframes css-buble { 0% { transform: translate(3px, 10px); } 25% { transform: translate(0, 0px); } 50% { transform: translate(-3px, -24px); } 75% { transform: translate(0, -49px); opacity: 1; } 100% { transform: translate(3px, -97px); opacity: 0; }}

浏览器兼容性

正如我们前面提到的,这项技术是用CSS开发的,所以几乎所有的主流浏览器都支持这种技术。 在未来版本的浏览器中可能会更改语法和行为。 Chrome和Safari需要在css中使用前缀-webkit。 对于今天,它被以下浏览器的所支持:
❶Chrome
❷Firefox
❸Safari
❹IE 10+
❺Opera

重要提示:Internet Explorer 9和早期版本不支持@keyframe规则或动画属性。

那就这样吧!

我希望你喜欢这篇文章和我使用的技术。请点击下面的分享栏分享。
如果您有任何更多建议要添加,请随时在以下内容发表评论。

©著作权归作者所有:来自51CTO博客作者mob604756e9ab63的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 4K + 书写主动画笔:EHOMEWEI 便携触摸显示器评测
  2. 小姐姐用动画图解Git命令,一看就懂!
  3. Java 自定义PPT动画动作路径
  4. 用Highcharts动画制作彩票轮
  5. Android(安卓)Transition——提高一点点篇
  6. 2018最新 Android(安卓)面试题总结(二)
  7. Android(安卓)使用MotionLayout实现动画效果
  8. 高德地图实现Marker模拟gif动画
  9. ShutdownThread - 动画 & 音乐

随机推荐

  1. Jquery中的队列函数quene()、dequene()、
  2. JQUERY中做表单验证,谁有带时间的日期选择
  3. 请问jquery如何选择tr下的n个tr?
  4. 如何检测jQuery中的水平滚动?
  5. jquery自定义事件
  6. Symfony 2在用户站点上动态添加字段以形
  7. 如何用jQuery获取django的HttpResponse状
  8. jQuery学习笔记- focus和blur事件妙用
  9. jQuery取得select选中的值
  10. 具有嵌套元素的jQuery悬停事件