常用的九种CSS动画

简介: 常用的九种CSS动画
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>9种css动画</title>
    <link rel="stylesheet" type="text/css" href="css/demo2.css"/>
    <link rel="icon" sizes="any" mask="" href="./img/baidu.svg">
    <style>
      @charset "utf-8";
      *{padding: 0;margin: 0;}
      figure{
        width: 33.3%;
        height: 365px;
        float: left;
        overflow: hidden;
        position: relative;
      }
      img{
        height:100%;
        transition: all 1s;
      }
      figure:hover img{
        -webkit-transform: translateX(-10px);
        -moz-transform: translateX(-10px);
        -ms-transform: translateX(-10px);
        -o-transform: translateX(-10px);
        transform: translateX(-10px);
        opacity: 0.5;
      }
      ul,li{
        list-style: none;
      }
      h2,p,li,div{
        position: absolute;
        transition: all 0.5s;
        color: #000;
      }
      /* 动画1 */
      .effect1 h2{
        left:10%;
        bottom:30%;
      }
      .effect1 p{
        left:10%;
        top:100%;
        color: #000;
      }
      .effect1:hover h2{
        -webkit-transform: translateY(-15px);
        -moz-transform: translateY(-15px);
        -ms-transform: translateY(-15px);
        -o-transform: translateY(-15px);
        transform: translateY(-15px);
      }
      .effect1:hover p{
        /*-webkit-transform: translateY(-30px);
        -moz-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
        -o-transform: translateY(-30px);
        transform: translateY(-30px);*/
        top:80%;
      }
      /* 动画2 */
      .effect2 h2{
        top:20%;
        left:15%;
      }
      .effect2 ul li{
        background-color: #fff;
        color: #000;
      }
      .effect2 ul li:nth-child(1){
        top:45%;
        left:15%;
        -webkit-transform: translateX(-200px);
        -moz-transform: translateX(-200px);
        -ms-transform: translateX(-200px);
        -o-transform: translateX(-200px);
        transform: translateX(-200px);;
      }
      .effect2 ul li:nth-child(2){
        top:55%;
        left:15%;
        -webkit-transition-delay: 0.2s;
        -moz-transition-delay: 0.2s;
        -ms-transition-delay: 0.2s;
        -o-transition-delay: 0.2s;
        transition-delay: 0.2s;
        -webkit-transform: translateX(-200px);
        -moz-transform: translateX(-200px);
        -ms-transform: translateX(-200px);
        -o-transform: translateX(-200px);
        transform: translateX(-200px);;
      }
      .effect2 ul li:nth-child(3){
        top:65%;
        left:15%;
        -webkit-transition-delay: 0.4s;
        -moz-transition-delay: 0.4s;
        -ms-transition-delay: 0.4s;
        -o-transition-delay: 0.4s;
        transition-delay: 0.4s;
        -webkit-transform: translateX(-300px);
        -moz-transform: translateX(-300px);
        -ms-transform: translateX(-300px);
        -o-transform: translateX(-300px);
        transform: translateX(-300px);;
      }
      .effect2:hover ul li{
        -webkit-transform: translateX(0);
        -moz-transform: translateX(0);
        -ms-transform: translateX(0);
        -o-transform: translateX(0);
        transform: translateX(0);
      }
      /* 动画3 */
      .effect3 h2{
        top:20%;
        left:15%;
      }
      .effect3 p{
        width: 100%;
        bottom: 0;
        color: #000;
        background-color: #fff;
        line-height: 24px;
        text-indent: 32px;
        -webkit-transform: translateY(50px);
        -moz-transform: translateY(50px);
        -ms-transform: translateY(50px);
        -o-transform: translateY(50px);
        transform: translateY(50px);;
      }
      .effect3:hover p{
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
      }
      /* 动画4 */
      .effect4 div{
        width: 150%;
        height:50%;
        top:100%;
        background-color: #fff;
        -webkit-transform-origin: 0% 0%;
        -moz-transform-origin: 0% 0%;
        -ms-transform-origin: 0% 0%;
        -o-transform-origin: 0% 0%;
        transform-origin: 0% 0%;
        /*-webkit-transform: rotate(-15deg);
        -moz-transform: rotate(-15deg);
        -ms-transform: rotate(-15deg);
        -o-transform: rotate(-15deg);
        transform: rotate(-15deg);*/
      }
      .effect4:hover div{
        -webkit-transform: rotate(-15deg);
        -moz-transform: rotate(-15deg);
        -ms-transform: rotate(-15deg);
        -o-transform: rotate(-15deg);
        transform: rotate(-15deg);
      }
      .effect4 ul li{
        bottom: 25px;
        color: #000;
        font-size: 18px;
        -webkit-transform: translateY(50px);
        -moz-transform: translateY(50px);
        -ms-transform: translateY(50px);
        -o-transform: translateY(50px);
        transform: translateY(50px);
      }
      .effect4 ul li:nth-child(2){
        right:30px;
        -webkit-transition-delay: 0.1s;
        -moz-transition-delay: 0.1s;
        -ms-transition-delay: 0.1s;
        -o-transition-delay: 0.1s;
        transition-delay: 0.1s;
      }
      .effect4 ul li:nth-child(1){
        right:90px;
      }
      .effect4:hover ul li{
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
      }
      /* 动画5 */
      .effect5 h2{
        left:20%;
        top:20%;
        -webkit-transform: translateX(-50px);
        -moz-transform: translateX(-50px);
        -ms-transform: translateX(-50px);
        -o-transform: translateX(-50px);
        transform: translateX(-50px);
      }
      .effect5:hover h2{
        -webkit-transform: translateX(0);
        -moz-transform: translateX(0);
        -ms-transform: translateX(0);
        -o-transform: translateX(0);
        transform: translateX(0);
      }
      .effect5 p{
        left:25%;
        top:30%;
        -webkit-transform: translateY(50px);
        -moz-transform: translateY(50px);
        -ms-transform: translateY(50px);
        -o-transform: translateY(50px);
        transform: translateY(50px);
      }
      .effect5:hover p{
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
      }
      .effect5 div{
        width: 70%;
        height:70%;
        left:15%;
        top:15%;
        border:2px solid #f66;
        -webkit-transform:  translateY(-350px) rotate(0);
        -moz-transform:  translateY(-350px) rotate(0);
        -ms-transform: translateY(-350px) rotate(0);
        -o-transform:  translateY(-350px) rotate(0);
        transform:  translateY(-350px) rotate(0);
      }
      .effect5:hover div{
        -webkit-transform:translateY(0) rotate(360deg) ;
        -moz-transform:translateY(0) rotate(360deg) ;
        -ms-transform:translateY(0) rotate(360deg) ;
        -o-transform:translateY(0) rotate(360deg) ;
        transform:translateY(0) rotate(360deg) ;
      }
      /* 动画6 */
      .effect6 h2{
        top:20%;
        left:10%;
        -webkit-transform: skew(90deg);
        -moz-transform: skew(90deg);
        -ms-transform: skew(90deg);
        -o-transform: skew(90deg);
        transform: skew(90deg);
      }
      .effect6 p{
        left:10%;top:30%;
        -webkit-transform: skew(90deg);
        -moz-transform: skew(90deg);
        -ms-transform: skew(90deg);
        -o-transform: skew(90deg);
        transform: skew(90deg);
      }
      .effect6:hover h2,.effect6:hover p{
        -webkit-transform: skew(0);
        -moz-transform: skew(0);
        -ms-transform: skew(0);
        -o-transform: skew(0);
        transform: skew(0);
      }
      /* 动画7 */
      .effect7 img{
        -webkit-transform: scale(1.2);
        -moz-transform: scale(1.2);
        -ms-transform: scale(1.2);
        -o-transform: scale(1.2);
        transform: scale(1.2);
      }
      .effect7 div{
        width: 70%;
        height:70%;
        border: 2px solid #000;
        left:15%;
        top:15%;
        -webkit-transform: scale(1.2);
        -moz-transform: scale(1.2);
        -ms-transform: scale(1.2);
        -o-transform: scale(1.2);
        transform: scale(1.2);
      }
      .effect7 h2{
        left:20%;top:20%;
        -webkit-transform: scale(1.2);
        -moz-transform: scale(1.2);
        -ms-transform: scale(1.2);
        -o-transform: scale(1.2);
        transform: scale(1.2);
      }
      .effect7 p{
        left:20%;top:40%;
        -webkit-transform: scale(1.2);
        -moz-transform: scale(1.2);
        -ms-transform: scale(1.2);
        -o-transform: scale(1.2);
        transform: scale(1.2);
      }
      .effect7:hover *{
        -webkit-transform: scale(1);
        -moz-transform: scale(1);
        -ms-transform: scale(1);
        -o-transform: scale(1);
        transform: scale(1);
      }
      /* 动画8 */
      .effect8 h2{
        left: 20%;
        top:20%;
        -webkit-transform: translateX(-50px);
        -moz-transform: translateX(-50px);
        -ms-transform: translateX(-50px);
        -o-transform: translateX(-50px);
        transform: translateX(-50px);
      }
      .effect8:hover h2{
        -webkit-transform: translateX(0);
        -moz-transform: translateX(0);
        -ms-transform: translateX(0);
        -o-transform: translateX(0);
        transform: translateX(0);
      }
      .effect8 p{
        left:25%;
        top:30%;
        -webkit-transform: translateY(30px);
        -moz-transform: translateY(30px);
        -ms-transform: translateY(30px);
        -o-transform: translateY(30px);
        transform: translateY(30px);
        opacity: 0;
      }
      .effect8:hover p{
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
      }
      .effect8 #borderW{
        /*width: 80%;
        height:70%;
        left: 10%;
        top:15%;
        border: 1px solid #fff;
        border-left:0;
        border-right: 0;
        -webkit-transform: scale(0,1);
        -moz-transform: scale(0,1);
        -ms-transform: scale(0,1);
        -o-transform: scale(0,1);
        transform: scale(0,1);*/
        width: 0;
        left:50%;
        height:70%;
        top:15%;
        border: 1px solid #000;
        border-left:0;
        border-right: 0;
      }
      .effect8:hover #borderW{
        /*-webkit-transform: scale(1,1);
        -moz-transform: scale(1,1);
        -ms-transform: scale(1,1);
        -o-transform: scale(1,1);
        transform: scale(1,1);*/
        left:10%;
        width: 80%;
      }
      .effect8 #borderH{
        width: 70%;
        height:80%;
        left:15%;
        top:10%;
        border:1px solid #000;
        border-top:0;
        border-bottom:0;
        -webkit-transform: scale(1,0);
        -moz-transform: scale(1,0);
        -ms-transform: scale(1,0);
        -o-transform: scale(1,0);
        transform: scale(1,0);
      }
      .effect8:hover #borderH{
        -webkit-transform: scale(1,1);
        -moz-transform: scale(1,1);
        -ms-transform: scale(1,1);
        -o-transform: scale(1,1);
        transform: scale(1,1);
      }
    </style>
  </head>
  <body>
    <!-- 动画1 -->
    <figure class="effect1">
      <img src="img/pic1.jpg"/>
      <h2>平移动画</h2>
      <p>最简单的平移动画</p>
    </figure>
    <!-- 动画2 -->
    <figure class="effect2">
      <img src="img/pic2.jpg"/>
      <h2>平移动画</h2>
      <ul >
        <li>多条图片简介文字</li>
        <li>逐一飞入动画</li>
        <li> 利用动画延时达到效果</li>
      </ul>
    </figure>
    <!-- 动画3 -->
    <figure class="effect3">
      <img src="img/pic3.jpg"/>
      <h2>底部滑出动画</h2>
      <p>
        translate属性可以制作多种动画,一个简单的位置移动可以制作出多种效果,重要看制作师们能否开动想象力。
      </p>
    </figure>
    <!-- 动画4 -->
    <figure class="effect4">
      <img src="img/pic4.jpg"/>
      <div></div>
      <ul>
        <li>info1</li>
        <li>info2</li>
      </ul>
    </figure>
    <!-- 动画5 -->
    <figure class="effect5">
      <img src="img/pic5.jpg"/>
      <h2>旋转飞入</h2>
      <p>通过旋转和位移</p>
      <div></div>
    </figure>
    <!-- 动画6 -->
    <figure class="effect6">
      <img src="img/pic6.jpg"/>
      <h2>扭曲飞入飞</h2>
      <p>去通过扭曲和位移,制作出飞入的效果。扭曲属到达90度。元素就看不见了</p>
    </figure>
    <!-- 动画7 -->
    <figure class="effect7">
      <img src="img/pic7.jpg"/>
      <div></div>
      <h2>缩放</h2>
      <p>缩放缩放缩放缩放缩放</p>
    </figure>
    <!-- 动画8 -->
    <figure class="effect8">
      <img src="img/pic8.jpg"/>
      <h2>绘制线条效果</h2>
      <p>通过缩放属性绘制边框线条</p>
      <div id="borderW"></div>
      <div id="borderH"></div>
    </figure>
    <!-- 动画9 -->
    <figure class="effect9">
      <img src="img/pic9.jpg"/>
    </figure>
  </body>
</html>
相关文章
|
10天前
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
|
6天前
|
前端开发 JavaScript 程序员
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
|
21小时前
|
移动开发 前端开发 JavaScript
舞动屏幕盛宴:CSS3 动画的创意艺术之旅
舞动屏幕盛宴:CSS3 动画的创意艺术之旅
|
22天前
|
前端开发 UED 容器
纯CSS画浮动卡通蓝天白云草坪动画效果
【6月更文挑战第1天】网页设计中,通过创新技巧,可以使用HTML和CSS模拟云朵漂浮和草地动画效果,提升用户体验。背景实现采用线性渐变动画,使背景颜色从浅青至白平滑过渡并循环移动。云朵效果通过多个不同大小和位置的`<div>`元素,结合CSS的`position: absolute;`和`@keyframes`动画实现浮动。草的动画则是通过三角形形状及`::before`和`::after`伪元素创造,配合不同动画速度和角度模拟自然摆动。完整代码可在提供的链接中下载。
28 1
纯CSS画浮动卡通蓝天白云草坪动画效果
|
10天前
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
|
15天前
|
前端开发 JavaScript 开发者
CSS基础-CSS3过渡与动画
【6月更文挑战第11天】本文介绍了CSS3的过渡和动画特性,用于创建平滑的视觉效果。过渡通过`transition`属性实现元素样式改变的缓动效果,常用于按钮悬停、图片切换等场景。易错点包括忘记设置初始和最终样式,以及过渡效果不明显。动画则利用`@keyframes`定义关键帧序列,适用于循环播放的图标旋转等复杂效果。动画的错误可能在于结束状态处理和无限循环的性能问题。通过代码示例和避免常见陷阱,开发者能更好地利用CSS3动画提升网页交互体验。关键在于适度使用,保持界面流畅舒适。
|
26天前
|
前端开发
CSS属性涵盖了从文本样式到布局控制、从颜色处理到动画效果的各个方面
【5月更文挑战第31天】CSS属性涵盖了从文本样式到布局控制、从颜色处理到动画效果的各个方面
28 1
|
1月前
|
前端开发 JavaScript
前端 css 经典:transition 过渡和 animation 动画
前端 css 经典:transition 过渡和 animation 动画
25 2
|
1月前
|
前端开发 UED
【专栏:CSS 进阶篇】CSS3 新特性:过渡、动画与变形
【4月更文挑战第30天】CSS3的过渡、动画和变形三大特性为网页设计注入活力,创造生动丰富的用户体验。过渡提供平滑效果,常用于按钮点击等;动画实现复杂动态效果,适用于滚动字幕等;变形允许元素几何变换,如旋转和缩放。实际应用包括动态导航菜单、图片轮播和加载动画。然而,需注意浏览器兼容性、性能优化和设计平衡。掌握这些特性,将为网页设计带来更多创新可能。
|
1月前
|
前端开发 UED 开发者
【专栏】探讨了CSS3动画卡顿的原因,包括复杂动画效果、过多元素参与、低效代码结构和硬件资源限制,并提出优化措施
【4月更文挑战第29天】本文探讨了CSS3动画卡顿的原因,包括复杂动画效果、过多元素参与、低效代码结构和硬件资源限制,并提出优化措施:简化动画路径、控制元素数量、优化代码结构、利用硬件加速及性能监测。通过实际案例展示了优化效果,强调了性能优化对提升用户体验的重要性。在开发中,应持续关注并优化动画性能,以适应网页应用的需求。