CSS 动画之九-会呼吸的信封

新年已经到来,各个网站都举办着各种不同类型的活动,‘会呼吸的信封‘有可能就是你遇到的其中一种.其实就是一个信封的样式,在封口处加上开合开合的动画效果,吸引用户去打开这个信封,点击后可能会送红包,优惠券或介绍其他相关的活动内容.

动画原理非常简单:先写出信封的样式,然后将封口处的元素使用rotateX旋转。这其中用到的技术就是3D transform的运用。

1. 先看截图

2. 代码实现思路

2.1写出信封的样式。

利用样式实现三角形的形状一般有两种做法:一是使用边框,二是使用方形的元素旋转。第一种办法灵活性好,宽高灵活设置。

2.2对封面的元素定义动画。

封面的元素也为三角形形状,一开一合的效果其实就是元素绕着X轴旋转。使用3D的transform效果设置如下:

-webkit-transform-style:preserve-3d;-webkit-perspective:1500;-webkit-transform-origin:0 0;

具体的属性说明参考如下:http://www.w3school.com.cn/css3/css3_3dtransform.asp

动画的设置如下:

-webkit-animation:breath 1.2s ease infinite alternate;、

具体的属性说明参考如下:http://www.w3school.com.cn/cssref/pr_animation.asp

2. 源代码

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">
 5 <title>CSS3效果之会呼吸的信封</title>
 6 <meta name="author" content="rainna" />
 7 <meta name="keywords" content="rainna‘s css lib" />
 8 <meta name="description" content="CSS3" />
 9 <style>
10 *{margin:0;padding:0;}
11 body{background:#f0f0f0;}
12
13 /* 信封样式1 */
14 .m-envelope,.m-envelope2{position:relative;width:602px;height:382px;margin:100px auto;background:#F1F1F1;overflow:hidden;}
15 .m-envelope:before,.m-envelope:after{content:‘‘;position:absolute;left:0;top:1px;width:0;height:0;border-left:235px solid #FFFAF7;border-top:190px solid transparent;border-bottom:190px solid transparent;}
16 .m-envelope:after{right:0;left:auto;-webkit-transform:rotate(180deg);}
17 .m-envelope .item,.m-envelope .item2{position:absolute;left:1px;bottom:0;width:0;height:0;border-bottom:242px solid #FFF7FE;border-left:300px solid transparent;border-right:300px solid transparent;}
18 .m-envelope .item2{top:0;bottom:auto;z-index:2;border-top:250px solid #F1F1F1;border-bottom:none;}
19 .m-envelope .item2-cover{border-top:246px solid #fff;}
20 .m-envelope .item2-cover:before{content:‘帮我打开‘;position:absolute;left:-8px;top:-190px;color:#99c800;line-height:2;font-weight:bold;}
21
22 /* 信封封面动画样式1 */
23 .m-envelope .item2-cover{-webkit-transform-style:preserve-3d;-webkit-perspective:1500;-webkit-transform-origin:0 0;-webkit-animation:breath 1.2s ease infinite alternate;}
24
25 @-webkit-keyframes breath{
26     100%{-webkit-transform:rotateX(20deg);}
27 }
28
29
30
31 /* 信封样式2 */
32 .m-envelope2{background:#fff;}
33 .m-envelope2:before,.m-envelope2 .item{content:‘‘;position:absolute;left:0;top:100%;width:422px;height:422px;border-width:2px;border-style:solid;border-color:#F1F1F1 #F1F1F1 transparent transparent;-webkit-transform-origin:left top;-webkit-transform:rotate(-45deg);}
34 .m-envelope2 .item{top:0;border-color:transparent transparent #F1F1F1 #F1F1F1;background:#F1F1F1;}
35 .m-envelope2 .item-cover{background:#fff;}
36
37 /* 信封封面动画样式2 */
38 .m-envelope2 .f-trans{-webkit-transform-style:preserve-3d;-webkit-perspective:1500;-webkit-transform-origin:0 0;-webkit-animation:breath 1.2s ease infinite alternate;}
39 </style>
40 </head>
41
42 <body>
43 <div class="m-envelope">
44     <div class="item"></div>
45     <div class="item2"></div>
46     <div class="item2 item2-cover"></div>
47 </div>
48
49 <div class="m-envelope2">
50     <div class="item"></div>
51     <div class="f-trans">
52         <div class="item item-cover"></div>
53     </div>
54 </div>
55 </body>
56 </html>

源码下载:http://pan.baidu.com/s/1o6iI9tC

时间: 2024-07-30 03:10:10

CSS 动画之九-会呼吸的信封的相关文章

CSS动画总结与呼吸灯效果

首先,先介绍一下主要用到的css属性:animation,text-shadow. text-shadow就不再介绍了,上一篇已经详细介绍了用法.这里先介绍一下animation属性. 1.animation animation是css3的属性,主要有以下几项: 属性 描述   @keyframes 规定动画.   animation 所有动画属性的简写属性,除了 animation-play-state 属性.   animation-name 规定 @keyframes 动画的名称.   a

Css3之高级-7 Css动画(概述、关键帧、动画属性)

一.动画概述 动画概念 - 过渡属性只能模拟动画效果 - animation 属性可以制作类似 Flash 动画 - 通过关键帧控制动画的每一步 - 使元素从一种样式逐渐变化为另一种样式 - 实现复杂的动画效果 - 浏览器兼容性 - 最新版本支持良好 - Chrome 和 Safari 需要前缀 -webkit- - FireFox 需要前缀 -moz- - Opera 需要前缀 -o- 动画示例 - 声明动画 - 创建一个已命名的动画 - 使用 @keyframes 声明动画的关键帧 - 为元

css动画-animation各个属性详解(转)

CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①animation-name,②animation-duration,③animation-timing-function, 以下是各属性详解: 1.animation-name:指定要绑定到选择器的关键帧的名称. 2.animation-duration:定义动画完成一个周期需要多少秒或毫秒 3.a

Animate.css让添加CSS动画像喝水一样容易

animate.css是一堆很酷的,有趣的,跨浏览器的动画效果库,你可以随意在你的项目中使用.用在你想要突出的任何地方,如主页,滑块,这像喝水一样容易,迷死人了. 用法 在您的网站上使用animate.css,只要简单地把样式表插入到文档中的<HEAD>中,并为需要动画的元素添加一个CSS类名即可,以及动画的名称.就是这样!你就有了一个CSS动画效果.超强! <head>   <link rel="stylesheet" href="animat

CSS动画效果之animation

Y(^o^)Y css动画大乱弹之animation. 概述 什么是animation呢?在回答这个问题之前,先要说明什么叫做@keyframe(关键帧).@keyframe算是一个动画模板.在其中,可以使用百分比,如从0%到100%的任意值,分别在每个百分比中,加上不同的属性,从而让元素达到一种在不断变化的动画效果.这和我们制作flash动画一样,我们只需设计几个关键帧,系统就能生成动画啦! 一个@keyframe例子: 1 /*定义关键帧动画*/ 2 @keyframes myframe {

CSS动画原理及硬件加速

一.图层 图层即层叠上下文,具体概念和应用大家可以看我之前转自张鑫旭大神博客的<CSS层叠上下文和层叠顺序>,这里我们简单复习一下产生层叠上下文的原因. 1.根层叠上下文 指的是页面根元素,也就是滚动条的默认的始作俑者<html>元素.这就是为什么,绝对定位元素在left/top等值定位的时候,如果没有其他定位元素限制,会相对浏览器窗口定位的原因. 2.定位元素与传统层叠上下文 对于包含有position:relative/position:absolute的定位元素,以及Fire

CSS动画与GPU

写在前面 满世界的动画性能优化技巧,例如: 只允许改变transform.opacity,其它属性不要动,避免重新计算布局(reflow) 对动画元素应用transform: translate3d(0, 0, 0).will-change: transform等,开启硬件加速 动画元素尽量用fixed.absolute定位方式,避免reflow 对动画元素应用高一点的z-index,减少复合层数量 ...其它可能有用的规则 那么问题是:已经小心遵守这些规则了,为什么动画还会卡顿.跳帧?还能优化

CSS 实现按钮及线呼吸灯效果

1. [代码]style    view sourceprint?01<style>02            body{03                font-family:'Segoe UI Light','Segoe UI',Arial,'微软雅黑',sans-serif;04                font-size: 20px;05                color:#333333;06 07            }08            .breath

CSS动画简介

原文地址:http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html 现在,我很少写介绍CSS的文章,因为感觉网站开发的关键还是在服务器端. 但是,CSS动画除外,它实在太有用了. 本文介绍CSS动画的两大组成部分:transition和animation.我不打算给出每一条属性的详尽介绍,那样可以写一本书.这篇文章只是一个简介,帮助初学者了解全貌,同时又是一个快速指南,当你想不起某一个用法的时候,能够快速地找