【CSS3初探之变形与动画】令人惊叹的CSS3

简介:
前言

这个标题比较狗血了,我一直知道CSS3可以做很多事情,但是我昨天看到一个人用CSS3华丽的画了一个太极八卦!

若是这个还可以接受,那么我今天就看见一个人用CSS3画了一个叮当猫!!!我突然就在想,你们究竟要闹哪样,实在太BT了!

我在想我最近几天是不是应该试试呢?虽然我CSS比较水了。。。

CSS3中的变形

在CSS3中,可以利用transform功能来实现文字或者图像的旋转、缩放、倾斜、移动这四种变形处理。

transform基础知识

在CSS3中,通过transform属性来达到功能需求,我们这里来看一个例子:

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
    div { width: 300px; margin: 150px auto; background-color: Yellow; text-align: center; -webkit-transform: rotate(45deg); 
-moz-transform: rotate(45deg); -o-transform: rotate(45deg); }
    </style>
</head>
<body>
<div>示例文字</div>
</body>
</html>
复制代码


我就喜欢这种怪怪的东西!!!

现在我们再来简单看看transform的其它功能:

transform缩放

使用scale方法来实现文字或者图像的缩放功能,在参数中定义倍率:

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
    .y { background: url("yexiaochai.jpg"); width: 343px; height: 468px; margin: 50px auto; background-color: Yellow; text-align: center; 
-webkit-transform: scale(0.5); -moz-transform: scale(0.5); -o-transform: scale(0.5); }
    div { background: url("yexiaochai.jpg"); width: 343px; height: 468px; margin: 10px auto 0; background-color: Yellow; text-align: center; float: left;}
    
    </style>
</head>
<body>
<div>示例文字</div>
<div class="y">示例文字</div>
</body>
</html>
复制代码


我们看到了缩放的威力了

倾斜

这个方法用来实现文字或者图片的倾斜,在参数中分别指定水平方向上的倾斜角度,垂直方向上的倾斜角度:

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
    .y { background: url("yexiaochai.jpg"); width: 343px; height: 468px; margin: 50px auto; background-color: Yellow; text-align: center; 
         -webkit-transform: skew(30deg, 30deg); -moz-transform: skew(30deg, 30deg); -o-transform: skew(30deg, 30deg); }
    div { background: url("yexiaochai.jpg"); width: 343px; height: 468px; margin: 10px auto 0; background-color: Yellow; text-align: center; float: left;}
    
    </style>
</head>
<body>
<div>示例文字</div>
<div class="y">示例文字</div>
</body>
</html>
复制代码


移动

我们现在可以使用transform方法来使图片或者文字移动,在参数上分别指定水平、垂直的距离即可:

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
    .y { background: url("yexiaochai.jpg"); width: 343px; height: 468px; margin: 50px auto; background-color: Yellow; text-align: center; 
         -webkit-transform: transform(50px, 50px); -moz-transform: transform(50px, 50px); -o-transform: transform(50px, 50px); }
    div { background: url("yexiaochai.jpg"); width: 343px; height: 468px; margin: 10px auto 0; background-color: Yellow; text-align: center; float: left;}
    
    </style>
</head>
<body>
<div>示例文字</div>
<div class="y">示例文字</div>
</body>
</html>
复制代码
这个功能我就感觉意义不大了。。。

总结

CSS3的这个功能提出来还是比较有意义的,比如我们的相册要实现旋转操作便简单多了,然后我们想实现模拟生活中放大镜等功能也会带来其他乐趣。

CSS3中的动画

在CSS3中,如果使用动画功能,可以使页面上的文字或者图像具有动画效果,可以使背景色从一种颜色平滑过渡到另一种颜色!!!非常不错的特性

CSS3中动画功能分为Transitions功能与Animation功能,他们都可以改变CSS中的属性来产生动画效果。

Transitisions支持元素由一种属性平滑过渡到另一个属性,Animations功能支持通过关键帧来指定在页面上产生更复杂的动画效果。

Transitions

transition属性使用方法如下:

transition: property duration timing-function
参数一表示要对哪个属性进行平滑过渡
参数二表示多长时间完成
参数三表示通过什么方法来平滑过渡
复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
    .y {  background-image: url(1.jpg); width: 1340px; height: 900px; text-align: center; 
         -webkit-transition: background-image 3s linear; -moz-transition: background-image 3s ulinear; -o-transition: background-image 3s linear; }
    .y:hover { background-image: url(2.jpg);}
    </style>
</head>
<body>
<div class="y">示例文字</div>
</body>
</html>
复制代码


效果着实不差,但是很多浏览器不支持哟!

多个属性变形
transition缺点:
transition功能实现的动画只能指定属性的开始值以及结束值,不能实现更加复杂的效果,但Animations就可以!

Animations

该功能与transition基本一致,只不过其控制力度更细而已.

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
    .y {  background-image: url(1.jpg); width: 1340px; height: 900px; text-align: center; }
    @-webkit-keyframes myImg 
    {
        40% { background-image: url(yexiaochai.jpg); }   
        100% { background-image: url(2.jpg); }   
    }
    .y:hover { -webkit-animation: myImg 3s linear; }
    </style>
</head>
<body>
<div class="y">示例文字</div>
</body>
</html>
复制代码


我想说,他闪瞎了我的合金狗眼!!!

最后,让我们用以上功能实现一个我一直想要的功能:

实现网页淡入淡出

复制代码
核心代码
     @-webkit-keyframes fadein 
        {
            0% { opacity: 0; }   
            100% { opacity: 1; }   
        }
        body {  -webkit-animation: fadein 3s linear 2; }
复制代码
完整例子


结语

这两章的知识点非常实用,特别是后面的动画效果,将会带来很好的用户体验!

当然用得好就是酷,用的不好就是花花绿绿很难看了,另外不知道性能问题怎么样了?





本文转自叶小钗博客园博客,原文链接http://www.cnblogs.com/yexiaochai/archive/2013/04/27/3046687.html如需转载请自行联系原作者

相关文章
|
4天前
|
前端开发
CSS动画(动态导航栏)
CSS动画(动态导航栏)
|
4天前
|
前端开发 JavaScript
CSS动画(个人资料卡片)
CSS动画(个人资料卡片)
|
4天前
|
前端开发
CSS动画(登录页面)
CSS动画(登录页面)
|
4天前
|
前端开发
CSS动画(炫酷表单)
CSS动画(炫酷表单)
|
4天前
|
前端开发 JavaScript
HTML+CSS+JS 倒计时动画效果
HTML+CSS+JS 倒计时动画效果
|
2月前
|
前端开发 内存技术
CSS动画示例(上一篇是CSS过渡…)
CSS动画示例(上一篇是CSS过渡…)
|
2月前
|
前端开发
CSS3中的动画示例
CSS3中的动画示例
|
10月前
|
前端开发
css扫描动画效果demo示例(整理)
css扫描动画效果demo示例(整理)
|
10月前
|
前端开发
6种css预载动画效果demo效果示例(整理)
6种css预载动画效果demo效果示例(整理)
|
前端开发 内存技术
CSS动画示例(上一篇是CSS过渡…)
CSS动画示例(上一篇是CSS过渡…)
89 0
CSS动画示例(上一篇是CSS过渡…)