1.CSS3过渡

  所谓CSS3过渡,就是使用CSS3让元素从一种状态慢慢转换到另一种状态。如鼠标的悬停状态就是一种过渡。如下例子:

  #content a{
      text-decoration: none;
      font:2.25em;
      background-color: #b01c20;
      text-transform: uppercase;
      border-radius: 8px;
      color: #fff;
      padding:30px;
      float: left;
      background: linear-gradient(90deg,#b01c20 0%,#f15c60 100%);
      margin-top: 30px;
      box-shadow: 5px 5px 5px hsla(0,0%,26.6667%,0.8);
      text-shadow:0px 1px black;
      border:1px solid #bfbfbf;
     }

  现在给按钮增加一个悬停效果:

  #content a:hover{
      border:1px solid #000;
      color: #000;
      text-shadow:0px 1px #fff;
  }

  使用这段CSS代码,当鼠标悬停在按钮上面时,按钮会直接从第一种状态(白色文字)突变到第二种状态(黑色文字)-就是一个开关效果。设置平滑过渡,代码如下:

  #content a{

    /*.......原来的样式.......*/

    transition:all 1s ease 0s;

  }

  注意:这里把过渡应用到了元素而不是悬停状态上。这样做是为了让元素的其他状态也能设置不同的样式并拥有类似的效果。所以,过渡声明要放在过渡效果开始的元素上。

  1.1.过渡相关的属性

    (1)transition-property:要过渡的CSS属性名称(比如background-color、text-shadow或者all,使用all则过渡会被应用到每一个可能的CSS属性上);

    (2)transition-duration:定义过渡效果持续的时间(时间单位为秒,比如.3s、2s或1.5s);

    (3)transition-timing-function:定义过渡期间速度如何变化(比如ease、linear、ease-in、ease-out、ease-in-out或cubic-bezier);

    (4)transition-delay:可选,用于定义过渡开始前的延迟时间。相反,将该值设置为一个负数,可以让过渡效果立即开始,但过渡旅程则会在半路结束。

    单独使用各种过渡属性创建转换效果的语法如下:  

      #content a{

         /*.....其他样式......*/

        transition-property:all;

        transition-duration:1s;

        transition-timing-function:ease;

        transition-delay:0s; 

      }

2.CSS3的2D变形

  2.1.scale:用来缩放元素(放大或缩小)

    nav ul li a:hover{

      /*......其他代码......*/

      transform:scale(1.7);

    }

    要想看到效果必须让应用该规则的原始原始以块状显示。如下:

    nav ul li a{

      /*.....其他代码.....*/

      display:block;

    }

  2.2 translate:在屏幕上移动元素(上下左右四个方向)

    transform:translate(40px,0px);

    translate会告知浏览器按照一定度量值移动元素,可以使用像素或百分比。语法是第一个值表示从左向右移动的距离,然后是从上向下移动的距离。正值会让元素向右或向下移动,负值则会让元素向左或向上移动。

  要想看到效果必须让应用该规则的原始原始以块状显示。

  2.3 rotate:按照一定角度旋转元素(单位为度)

    transform:rotate(90deg);

     括号中的值只能以度为单位。当然,也可以如下设置

      transform:rotate(3600deg);

      这会让元素旋转整整10圈。

  2.4 skew:沿X和Y轴对元素进行斜切

    transform:skew(10deg,2deg);

  2.5 matrix:允许你以像素精度来控制变形效果。

    transform:matrix(1.678,-0.256,1.522,2.333,-51.533,-1.989);

    它基本上能让你将若干变形效果(scale、rotate、skew等等)组合成单个声明。

  2.6傻瓜化的矩阵变形工具

  访问这里:http://www.useragentman.com/matrix/。Matrix Construction Set这个网站可以让你精确地将元素拖拽成想要的样子,然后它会自动生成完美的矩阵代码(代码中包含了浏览器私有前缀)。

  2.7 transform-origin属性

  在使用上述变形效果的同时,你还可以使用transform-origin属性来修改变形效果的起点。

    transform:rotate(45deg);  

    transform-origin:20% 20%;

  2.8 CSS3的2D变形模块的完整规范文档请见:http://www.w3.org/TR/css3-2d-transforms/、

3.尝试CSS3的3D变形

  Webkit核心浏览器(safari和Chrome)和Firefox10+都已支持CSS3的3D变形,但最新的IE10+都还不支持该特性。尽管缺少“桌面版”浏览器的广泛支持,但多亏了移动平台浏览器基本都是Webkit血统,所以3D变形在Android(V3以后的版本)和IOS(所有版本)均被支持。

  当3D变形被广泛支持,我们就可以用它来做图片轮播效果,而不用再依赖jQuery等JavaScript方案了。

  下面是一个3D变形的代码

  <section class="Qcontainer">
                    <div class="film">
                        <div class="face front">
                            <img src="__PUBLIC__/Images/one.jpg" alt="The Goonies" />
                        </div>
                        <div class="face back"><h5>HOT!</h5></div>
                    </div>
      </section>

  CSS代码如下:

    .Qcontainer{
        height: 100%;
        width: 28%;
        position: relative;
        -webkit-perspective:800;      //设置透视,透视的值越大,就表示你的视点与3D场景之间的景深越大。
        float: left;
        margin-right: 2%;
    }
    .film{
        width: 100%;
        height: 15em;
        -webkit-transform-style:preserve-3d;  //.Qcontainer类中添加的透视声明只会应用到其第一个子元素上(即本例中的class为.film的div)。因此,为了延续父元素的透视,我们给.film元素设定了preserve-3d(这样可以设置一个3D场景)。
        -webkit-transition:1s;
    }
    .Qcontainer:hover .film{
        -webkit-transform:rotateY(180deg);  //当鼠标悬停在.Qcontainer模块时,给.film这个div添加一个翻转的效果
    }
    .face{
        position: absolute;          //.face必须使用绝对定位,这样海报才能盖在.back这个div上
        -webkit-backface-visibility:hidden;  //当海报翻转之后隐藏在其背面的内容
    }
    .back{
        width: 66%;
        height: 127%;
        -webkit-transform:rotateY(180deg);   //不加这句的话,.back这个div就会显示在正面海报之上。
        background: #3b3b3b;
        background: -webkit-linear-gradient(top,rgba(0,0,0,0.65) 0%,
                                        rgba(0,0,0,0) 100%);
        padding:15%;
    }

  该3D效果只有Webkit核心浏览器支持

  但我们可以用一点传统的CSS代码为非Webkit核心浏览器提供一个合理的降级方案;

    .front{
        z-index: 5;
    }
    .Qcontainer:hover .front{
        z-index: 0;
    }

  想要了解W3C有关CSS 3D变形的最新进展,请见这里:http://dev.w3.org/csswg/css3-3d-transforms/

4.CSS3动画效果

  CSS3动画由两部分组成:首先是关键帧声明,然后在动画属性中使用该关键帧声明。

  (1)首先是关键帧声明规则:

    @keyframes warning{
        0%{
            text-shadow:0px 0px 4px #000000;
        }
        50%{
            text-shadow:0 0 20px #000000;
        }
        100%{
            text-shadow:0px 0px 4px #000000;
        }
    }

  此处的代码没有添加前缀,如果在浏览器中没有效果,你可能需要添加一组完整的浏览器私有前缀(如@-webkit-keyframes)

  (2)然后在动画属性中引用它:

    .back h5{
        font-size: 4em;
        color: #f2050b;
        text-align: center;
        animation:warning 1.5s infinite ease-in;
    }

  在animation属性之后,我们设定了要使用的关键帧(例子中的warning,即关键帧的名字),然后设定的动画的持续时间(1.5s),之后设定了animation-iteration-count(我们在这里使用了infinite让动画连续循环播放),最后设定了调速函数(ease-in)。

  CSS3动画技巧范例:http://webdesignerwall.com/trends/47-amazing-css3-animation-demos

转载于:https://www.cnblogs.com/xuying/p/4660028.html

CSS3过渡、变形和动画相关推荐

  1. css3中变形与动画(三)

    transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...

  2. css3变换、过渡与动画_带有CSS3过渡和变换的画布菜单

    css3变换.过渡与动画 Now as an easy to use jQuery Plugin 现在作为易于使用的jQuery插件 介绍 ( Introduction ) Off Canvas Me ...

  3. css中变形,css3中变形处理

    transfrom功能 在css3 中可以使用transfrom功能实现文字或图像的旋转,缩放,倾斜,移动等变形处理 deg是css3中使用的一种角度单位. 旋转: 使用rotate方法,在参数中加入 ...

  4. css3中的变形(transform)、过渡(transtion)、动画(animation)

    Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix.下面我们一 ...

  5. css3圆角360度转动画,target,框架集,css3过渡动画,css3圆角-阴影-透明度,运动曲线,图片文字遮罩,变形...

    target 模拟后台服务器 框架集 frameset和body不合,所以如果用frameset就不能有body标签 利用框架可以把浏览器窗口划分为若干个区域,每个区域就是一个框架,在其中分别显 示不 ...

  6. 从零开始学习前端开发 — 15、CSS3过渡、动画

    一.css3过渡 语法: transition: 过渡属性 过渡时间 延迟时间 过渡方式; 1.过渡属性(transition-property) 取值:all 所有发生变化的css属性都添加过渡 e ...

  7. css3中transition过渡和animation动画的区别

    css3中transition过渡和animation动画的区别 animation 多两个参数,循环和动画的方式 transition不能自行触发,通过hover等动作或结合JS进行触发.anmia ...

  8. CSS3变形透视动画总结

    CSS3变形透视动画总结 1. 总览 2. 移动元素 2.1 平面移动 2.2 Z轴方向移动 2.3 XYZ轴同时控制 3. 缩放元素 3.1 元素变形原点 4. 旋转元素 5. 倾斜元素 6. 透视 ...

  9. 08、CSS3过渡以及动画

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  10. Web前端学习记录——CSS3过渡属性+定位实现简单的动画效果

    css3过渡属性: 属性 描述 transition-property 检索或设置对象中的参与过渡的属性 transition-duration 检索或设置对象过渡的持续时间 transition-d ...

最新文章

  1. LTE-连接态下的DRX
  2. 字符设备之register_chrdev与register_chrdev_region
  3. python解析html模块_Python HTMLParser模块解析html获取url实例
  4. Element 'dependency' cannot have character [children], because the type's content type is element-on
  5. 2019小程序没必要做了_企业有必要开发微信小程序吗?
  6. Fedora 31 已经为 Python 3.8 做好了准备
  7. s7填表指令att_第五章 S7-200 指令系统.ppt
  8. msyql数据类型对照java类型
  9. headerutf php_php header设置编码的方法
  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x...
  11. 如何设计一款IRR计算器
  12. 如何下载使用MSDN原版系统镜像
  13. ScreenToClient 和 ClientToScreen
  14. (五)Excel函数应用之查询与引用函数
  15. garbor 特征 matlab,Gabor小波滤波用于纹理特征提取
  16. 怎么关闭他人计算机网络,远程关机在局域网中,怎样能关闭别人的电脑呢 – 手机爱问...
  17. win7 IE中使用svg时利用symbol的方式出现卡死现象
  18. 创意信息联席CTO:学习财务思维,打造100位技术大咖
  19. [USACO10HOL]牛的政治Cow Politics
  20. 【项目一、xxx病虫害检测项目】1、SSD原理和源码分析

热门文章

  1. RPN Calculator for mac(RPN计算器)
  2. 视频特效制作After Effects 2022 for Mac
  3. Ableton Live 11 Suite for Mac(数字音乐音频制作软件)
  4. Batteries for Mac(电池电量管理软件)
  5. 在 Mac 上的“访达”中排序和排列项目
  6. Jump Desktop for Mac(远程桌面控制工具)怎么链接windows电脑
  7. 利用idea构建hibernate
  8. [原创] 数据库小工具 (BatchESQL.exe)
  9. 从写组件说Xml——实现(五)
  10. ZooKeeper 概念讲的好