使用CSS3动画做了四个小案例

简介: 使用CSS3动画做了四个小案例

1.背景动画


先来给大家展示一下效果视频


这里可以说一下电脑自带的录屏快捷键是win+alt+r



这块我就直接加图片了,不过你可以尝试运行一下就可以看到效果


下面我们来介绍一下如何让背景来动起来


架构的话不需要写或者为了跟我一样可以写一个h1试一试


<h1>动画背景(Animate Background)</h1>


然后搭建css的内嵌样式


第一步为了让我们文字来移动到我们正中间可以舍弃之前的套路布局来使用flex布局


               display: flex;

               justify-content: center;

               align-items: center;


CSS 弹性盒子布局是 CSS 的模块之一,定义了一种针对用户界面设计而优化的 CSS 盒子模型。在弹性布局模型中,弹性容器的子元素可以在任何方向上排布,也可以“弹性伸缩”其尺寸,既可以增加尺寸以填满未使用的空间,也可以收缩尺寸以避免父元素溢出。子元素的水平对齐和垂直对齐都能很方便的进行操控。通过嵌套这些框(水平框在垂直框内,或垂直框在水平框内)可以在两个维度上构建布局。


然后我们可以来设置她的高可以使用vh,(是指可视窗口的高度。假如高度是1200px的话。那10vh就是120px)


我这块来使用这个设置一下她的可视窗口的高度和一些基本的样式


                height: 200vh;
        font-size: 30px;
        color: #fff;
        background-image: -webkit-linear- 
                gradient(125deg,#2c3e50,#27ae60,#2980b9,#e74c3c,#8e44ad);
        background-size: 400%;


background-size:400%是指放大四百倍这样的话会跟着游览器一起放大这个倍数,为之后背景动画提供基础


下一步我们就来添加动画效果


@keyframes bgmove{
        from{
          background-position: 0% 50%;
        }
        50%{
          background-position: 100% 50%;
        }
        to{
          background-position: 0% 50%;
        }
      }


改变他的路径位置产生动画效果


然后我们只需要在谁作动画的身上来去添加这么一个属性


animation: bgmove 20s infinite;


第一个是名字,第二个是持续的时间 第三个是无线的循环动画


下面演示全代码


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
      body{
        display: flex;
        justify-content: center;
        align-items: center;
        height: 200vh;
        font-size: 30px;
        color: #fff;
        background-image: -webkit-linear-gradient(125deg,#2c3e50,#27ae60,#2980b9,#e74c3c,#8e44ad);
        background-size: 400%;
        animation: bgmove 20s infinite;
      }
      @keyframes bgmove{
        from{
          background-position: 0% 50%;
        }
        50%{
          background-position: 100% 50%;
        }
        to{
          background-position: 0% 50%;
        }
      }
    </style>
  </head>
  <body>
    <h1>动画背景(Animate Background)</h1>
  </body>
</html>


2.逼真的水滴动图



接下来我们就一起来制作这个动画


首先我先推荐二个网站


Palettes | Flat UI Colors 🎨 280 handpicked colors ready for COPY & PASTE这是一款调色板的工具,里面有很多类型的风格的样式版


花式边框半径生成器 (9elements.github.io):可以是可以自由调节边框的网址,调节完成复制下来就行


首先架构方面我们就直接写一个div给类名water就行


<div class="water"></div>


之后我们在清除一下默认边距


*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }


box-sizing是css3盒子模型,加了这个盒子内边距是算在里面计算的,就不会掉下去之类的了,总之非常好用


然后呢还是给我们的body添加视口宽度和高度,我这里就给个一百吧


body{
    width: 100vw;
    height: 100vh;
    display: flex;
    background-color: #00a8ff;
    justify-content: center;
  }


这里也是使用我们的弹性布局,让我们的盒子在中间显示


然后重点来了,我们需要去调节一下水滴的阴影效果来实现立体感


.water{
        margin-top: 200px;
        width: 300px;
        height: 300px;
        border: 1px solid #000;
        border-radius: 72% 28% 64% 36% / 12% 17% 83% 88%;
        box-shadow: inset 10px 20px 30px rgba(0,0,0,0.5),
                          10px 10px 20px rgba(0,0,0,0.3),
                  15px 15px 30px rgba(0,0,0,0.05),
                  inset -10px -10px 15px rgba(255,255,255,0.8);
      }


box-shadow:


box-shadow: none | inset(可选值,不设置,为外投影,设置,为内投影) x-offset(阴影水平偏移量,正方向为right) y-offset(阴影垂直偏移量,正方向为bottom) blur-radius(阴影模糊半径,为正,0为无模糊效果,值越大,越模糊) spread-radius(阴影扩展半径,可正可负) color


属性值描述:


1.阴影类型:此参数可选,默认的投影方式是外阴影;如果取其唯一值“inset”,就是将外阴影变成内阴影


2.X-offset:是指阴影水平偏移量,其值可正可负,正值,则阴影在对象的右边,负值,阴影在对象的左边


3. Y-offset:是指阴影的垂直偏移量,其值也可以是正负值,正值,阴影在对象的底部,负值时,阴影在对象的顶部


4.阴影模糊半径:此参数是可选,只能为正值,如果其值为0时,表示阴影不具有模糊效果,值越大阴影的边缘就越模糊


5. 阴影扩展半径:此参数可选,其值可为正负值,正值,则整个阴影都延展扩大,反之,则缩小


6.阴影颜色:此参数可选,不设定任何颜色时,浏览器会取默认色,但各浏览器默认色不一样,特别是在webkit内核下的safari和chrome浏览器将无色,也就是透明,建议不要省略此参数。


注:多层阴影,最内层优先级最高,之后依次降低。使用逗号“,”隔开。


然后呢为了更体现我们的感觉可以往里面使用伪元素来添加两个不同的水滴


.water::after{
        content: '';
        width: 20px;
        height: 20px;
        position: absolute;
        top: 240px;
        left: 47%;
        background-color:rgba(255,255,255,0.8);
        border-radius: 9% 91% 35% 65% / 51% 17% 83% 49%;
      }
      .water::before{
        content: '';
        width: 10px;
        height: 10px;
        position: absolute;
        top: 230px;
        left: 45%;
        background-color:rgba(255,255,255,0.8);
        border-radius: 53% 47% 46% 54% / 99% 0% 100% 1% ;
      }


这块的边框我是自己在软件上面拉好后直接复制下来,你们也可以自己去实现自己喜欢的效果


然后就是动画效果,改变他的边框效果即可,然后在把动画加到water里面去


@keyframes move{
        25%{
          border-radius: 11% 89% 65% 35% / 64% 32% 68% 36% ;
        }
        50%{
          border-radius: 60% 40% 65% 35% / 64% 32% 68% 36%;
        }
        to{
          border-radius: 73% 27% 65% 35% / 64% 67% 33% 36%;
        }
      }


下面是源代码


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
      *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }
      body{
        width: 100vw;
        height: 100vh;
        display: flex;
        background-color: #00a8ff;
        justify-content: center;
      }
      .water{
        margin-top: 200px;
        width: 300px;
        height: 300px;
        border: 1px solid #000;
        border-radius: 72% 28% 64% 36% / 12% 17% 83% 88%;
        box-shadow: inset 10px 20px 30px rgba(0,0,0,0.5),
                          10px 10px 20px rgba(0,0,0,0.3),
                  15px 15px 30px rgba(0,0,0,0.05),
                  inset -10px -10px 15px rgba(255,255,255,0.8);
                  animation: move 3s linear infinite alternate;
      }
      .water::after{
        content: '';
        width: 20px;
        height: 20px;
        position: absolute;
        top: 240px;
        left: 47%;
        background-color:rgba(255,255,255,0.8);
        border-radius: 9% 91% 35% 65% / 51% 17% 83% 49%;
      }
      .water::before{
        content: '';
        width: 10px;
        height: 10px;
        position: absolute;
        top: 230px;
        left: 45%;
        background-color:rgba(255,255,255,0.8);
        border-radius: 53% 47% 46% 54% / 99% 0% 100% 1% ;
      }
      @keyframes move{
        25%{
          border-radius: 11% 89% 65% 35% / 64% 32% 68% 36% ;
        }
        50%{
          border-radius: 60% 40% 65% 35% / 64% 32% 68% 36%;
        }
        to{
          border-radius: 73% 27% 65% 35% / 64% 67% 33% 36%;
        }
      }
    </style>
  </head>
  <body>
    <div class="water"></div>
  </body>
</html>


相关文章
|
2月前
纯css3实现的百分比渐变进度条加载动画源码
纯css3实现的百分比渐变进度条加载动画特效源码
59 31
|
26天前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
41 6
|
2月前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
67 7
|
2月前
CSS3制作的聚光灯下倒影文字选装动画特效源码
CSS3聚光灯下倒影文字特效是一段基于CSS3实现的聚光灯下带倒影的文字旋转动画效果代码,具有真实的视觉感,同时文字还会在旋转过程中显示出灯光的反射效果,很有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
33 6
|
2月前
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
69 5
|
2月前
纯css3加载loading发光变色动画代码
纯css3加载loading发光变色动画特效代码是一款基于css3 keyframes属性实现的发光变色圆点串联旋转loading加载动画
25 2
|
2月前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
2月前
|
Web App开发 前端开发 iOS开发
CSS加载动画大全 126种
CSS加载动画大全是一个css Loaders加载动画特效汇总,一共包含126种加载动画效果,不同样式不同图案,简单实用,一览包含所有,会让你在等待的过程中,体验视觉盛宴,给用户不一般的加载体验,欢迎下载试试!代码适用浏览器:搜狗、360、FireFox(建议)、Chrome、Safari、Opera、傲游、世界之窗,是一款不错的的特效插件,希望大家喜欢!
30 2
|
2月前
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。
|
2月前
jQuery+CSS3模拟过山车动态的文字动画特效源码
jQuery+CSS3模拟过山车动态的文字动画特效源码实现在全黑的背景下,画面中的文本呈现过山车的轨迹动画上下滚动转圈,且伴随文本颜色渐变效果,非常有意思,欢迎对此特效感兴趣的朋友前来下载参考。
25 1

热门文章

最新文章