zoukankan      html  css  js  c++  java
  • CSS3 过渡、变形和动画

    一、我们来给按钮增加一个悬停效果:
    #content a:hover {
    border: 1px solid #000000;
    color: #000000;
    text-shadow: 0px 1px white;
    }
    两种状态下的效果如下,先看默认状态:

    再看悬停状态:

    这里只是在鼠标悬停时简单地修改了一下文字、文字阴影以及边框的颜色。所以,你可
    能想象出来,使用这段 CSS 代码,当鼠标悬停在按钮上面时,按钮会直接从第一种状态
    (白色文字)突变到第二种状态(黑色文字)——就是一个开关效果。我们来给第一段
    CSS规则添加一点 CSS3魔法:
    #content a {
    transition: all 1s ease 0s;
    }

    现在再把鼠标悬停在按钮上,文字、文字阴影和边框阴影的颜色都会从第一种状态平滑
    过渡到第二种状态。

    CSS3过渡效果涉及四个属性,也可以使用包含这四个属性的缩写。
     transition-property :要过渡的 CSS 属性名称(比如 background-color 、
    text-shadow 或者 all ,使用 all 则过渡会被应用到每一个可能的 CSS属性上);
     transition-duration :定义过渡效果持续的时间(时间单位为秒,比如 .3s 、 2s
    或 1.5s );
     transition-timing-function :定义过渡期间速度如何变化(比如 ease 、 linear 、
    ease-in 、 ease-out 、 ease-in-out 或 cubic-bezier );
     transition-delay :可选,用于定义过渡开始前的延迟时间。相反,将该值设置为
    一个负数,可以让过渡效果立即开始,但过渡旅程则会从半路开始。
    单独使用各种过渡属性创建转换效果的语法如下:
    #content a {
    ……其他样式……
    transition-property: all;
    transition-duration: 1s;
    transition-timing-function: ease;
    transition-delay: 0s;
    }

    1. 过渡的简写语法
    正如我们之前所见过的那样,我们可以将单个的声明组合成一个简写版:
    transition: all 1s ease 0s;

    简写声明添加了浏览器私有前缀
    之后,代码如下:
    -o-transition: all 1s ease 0s;
    -ms-transition: all 1s ease 0s;
    -moz-transition: all 1s ease 0s;
    -webkit-transition: all 1s ease 0s;
    transition: all 1s ease 0s;

    2. 在不同时间段内过渡不同属性
    当一条规则要实现多个属性过渡时,这些属性不必步调一致。看看下面这段代码:
    #content a {
    /*……其他样式……*/
    transition-property: border, color, text-shadow;
    transition-duration: 2s, 3s, 8s;
    }
    此处我们通过 transition-property 来指定只过渡 border 、 color 和 text-shadow ,
    然后在 transition-duration 声明中我们设定边框过渡效果应该 2秒内完成,文字颜
    色 3秒,文字阴影 8秒。由逗号分隔的过渡持续时间按顺序对应上面的 CSS属性。

    二、CSS3 的 2D 变形

    有两种可用的 CSS3变形:2D变形和 3D变形。2D变形的实现更广泛,浏览器支持更好,
    写起来也更简单些,所以我们先来看看 2D 变形。CSS3 的 2D 变形模块允许我们使用下
    列变形。
     scale :用来缩放元素(放大或缩小)
     translate :在屏幕上移动元素(上下左右四个方向)
     rotate :按照一定角度旋转元素(单位为度)
     skew :沿 X和 Y轴对元素进行斜切
     matrix :允许你以像素精度来控制变形效果

    傻瓜化的矩阵变形工具
    无论怎么想象我都不是一个数学家,所以当我需要创建矩阵变形时,我一般都走捷径。
    如果你的数学也不太好,我建议你访问这里

    傻瓜化的矩阵变形工具
    无论怎么想象我都不是一个数学家,所以当我需要创建矩阵变形时,我一般都走捷径。
    如果你的数学也不太好,我建议你访问这里:http://www.useragentman.com/matrix/

    尝试 CSS3 的 3D 变形

    将鼠标悬停在图片上(在触摸屏上则是触击图片)就能揭晓答案。
    下面的代码是相关的页面标签,其中省略了重复的图片标签,因为它们的结构都一样:
    <section class="Qcontainer">
    <div class="film">
    <div class="face front">
    <img src="img/goonies.jpg" alt="The Goonies" />
    </div>
    <div class="face back"><h5>HOT!</h5></div>
    </div>
    </section>
    对应的 CSS代码如下。

    .Qcontainer {
    height: 100%;
    28%;
    position: relative;
    -webkit-perspective: 800;
    float: left;
    margin-right: 2%;
    }
    .film {
    100%;
    height: 15em;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: 1s;
    }
    .Qcontainer:hover .film {
    -webkit-transform: rotateY(180deg);
    }
    .face {
    position: absolute;
    -webkit-backface-visibility: hidden;
    }
    .back {
    66%;
    height: 127%;
    -webkit-transform: rotateY(180deg);
    background: #3b3b3b;
    background: -webkit-linear-gradient(top,
    rgba(0,0,0,0.65) 0%,
    rgba(0,0,0,0) 100%);
    padding: 15%;
    }
    代码部署好之后,将鼠标悬停在海报图片上,会看到图片翻转到背面并显示出了该电影
    的评判结果。

    CSS3 动画效果

    首先是关键帧规则:
    @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 )。

    分析代码:

    首先,我们定义了一个 @keyframes (关键帧)声明。然后为这个特定的关键帧声明设置
    了一个名称: warning 。你可以将其叫成任何名字,但考虑到这些关键帧声明可以在多
    个元素上复用,所以建议取一个合理的名字。
    可以设置多个关键帧(比如百分比值 10%、20%、30%、40%等等),或者也可以使用 from
    和 to 值来定义动画的开始帧和结束帧。

    动画开始时是 4像素阴影,然后用 50%的时间变化至 40像
    素阴影,之后再变化回 4像素阴影

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

  • 相关阅读:
    jsmin Javascript 的小巧的压缩工具
    pChart 支持中文显示
    使用 SyntaxHighlighter 实现代码高亮
    Linux Ubuntu 下阅读 CHM
    QueryPath Method Summary_方法速查手册
    QueryPath PHP 中的 jQuery
    SQL SELECT DISTINCT 语句
    写网页内容需要注意些什么?
    jQuery UI 弹出注册窗口_练习
    Smarty 中的 Foreach
  • 原文地址:https://www.cnblogs.com/lishenghao/p/css3GuoDuBianXingDongHua.html
Copyright © 2011-2022 走看看