css3之3D翻牌效果
最近一直在学css3,发现他真的是越来越牛逼。现在的css3已经不在是以前的css了,它能做出的功能效果是我们没法想象的了。它可以实现flash,可以制作一些js能做出来的效果,还可以写出ps做出来的一些渐变啊圆角啊阴影啊什么的效果,如此之炫的它,我相信已经有很多人对它做了更深的研究了吧,哈哈,今天我也在小小的研究了下它,主要是关于它的一些3d效果,对于3d本人一直都不是不清不楚的,今天有时间就刚好好好学习下,~~~
所谓的3d翻牌效果,其实就是两张图片,一张在前,一张在后,当前面的那张发生旋转后,转到一定角度时后面的图片就会跟着它的步伐一起旋转,只是一个旋转到看不见,而一个刚要转的我们看的见。是不是很心急,那就快来跟我一起学习吧,哈哈~@@@
首先,我们在html中有这样一个布局:
<div class="outer">
<div class="div1"></div>
<div class="div2"></div>
</div>
不要小看外面那个div,它可是本次内容不可少的呢,没了它,后面的效果就没法实现了呢!局布好了,接下来就要开始搞样式了。最先要搞的肯定是外面的哈,给它一个width,height,大少各位大神自己定吧,小妹我这就先给它定个200*200吧。外面的搞定了,里面的也要开始了,这里都是给200*200。此时在浏览器中一看发现div1和div2是上下显示的,一个上一个下,这就对了,要知道div是块元素,它要占据一整行的呢,但这对我们之前说的前后肯定是有矛盾的,不要急,给它一个绝对定位position: absolute;这样两个div的中心就重合啦。为了区别两个div,这里我们要分别给它们不一样的背景色。前期准备工作都差不搞定了,接下来我们来看看怎么样实现效果吧!
我们是要实现翻牌效果,一听就知道肯定是要有旋转的,这就要用到css3里的新属性transform:rotateY(?deg);有人有可能会问为什么是rotateY呢,这你就不知道了吧,翻牌,当然是沿着Y轴转啊,哈哈!所以当鼠标移到div上时我们就要让它实现旋转效果,那么此时外层div的用处就来啦,不管用哪个小div都无法让它们同时发生旋转,除非我们的鼠标是点在外面那个div上,于是就有这个代码了,
.outer:hover .div1{
transform:rotateY(-180deg);
}
.outer:hover .div2{
transform:rotateY(0deg);
}
旋转是有了,可是没有任何过渡效果的旋转看起来是很难看的,所以在这里,我们要给它们一个过渡效果,就要用到css3里的新属性transition:all 2s;此处的all是它所有的效果都过渡。讲到这里我们其实一直都没处理一件事,那就是怎么让当前面的旋转到后面,后面的紧跟其后出现, 这就是backface-visibility:hidden;一个在图片变换里很重要的一个属性,它的意思是当图片转到显示屏看不见的地方就消失了。就是说本来是正面的, 我们能看么到,但是当它沿着Y轴转180度后我们就不能看到它了,如果不加这个属性我们是能看到旋转后的反图片的,加了它就看不到了。所以我们要把这个属性加到两个小div上。而且为了实现此效果,我们在开始的时候还得让两个小div一个没有旋转,我们能看到,另一个也就是在背后的那个放转180度,这样当第一个div 开始旋转后我们就不会立即看到第二个div,而是等它旋转到看不到的地方,第二个div 才会出现。具体代码如下所示:
<html>
<head>
<title>3D翻牌效果 </title>
<meta charset="UTF-8">
<script type="text/javascript" src="jquery.js"></script>
<style type="text/css">
.outer{
width: 510px;
height: 340px;
border: 1px red solid;
margin: 0 auto; }
.outer div{
width:510px;
height: 340px;
position: absolute;
transform-style: preserve-3d;
backface-visibility:hidden;
transition:all 2s; }
.div1{
background: url("images/1.jpg");
transform:rotateY(0);
}
.div2{
background: url("images/2.jpg") no-repeat;
transform:rotateY(-180deg);
}
.outer:hover .div1{
transform:rotateY(-180deg);
}
.outer:hover .div2{
transform:rotateY(0deg);
}
</style>
</head> <body>
<div class="outer">
<div class="div1"></div>
<div class="div2"></div>
</div>
</body> </html>
css3之3D翻牌效果的更多相关文章
- css3的3D翻牌效果
利用hover控制动画,一个从翻面向正面翻,一个从正面向反面翻. 利用:backface-visibility: hidden;控制反面的元素不显示. 不支持的浏览器直接切换层级换图. <!DO ...
- HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果
首先感谢w3cfuns的老师~ 今天给大家带来一个CSS3制作的翻牌效果,就是鼠标移到元素上,感觉可以看到元素背后的信息.大家如果制作考验记忆力的连连看.扑克类的游戏神马的,甚至给女朋友写一些话语,放 ...
- 使用JS与CSS3的翻转实现3D翻牌效果
之前我们有讨论过使用CSS3如何实现网页水平翻转的效果,而这次我们介绍的是翻转效果更深一层的应用——3D翻牌效果. 这里我们需要使用flip中轴翻转实现,又因为是3D效果,如果希望呈现一定的3D视角, ...
- HTML5和CSS3实现3D转换效果 CSS3的3D效果
上次,我们一起研究了css3的2d模块,这次我们一起来看一下css3的3d模块. 首先,我们来了解一下3d的坐标系,x轴在屏幕上为水平方向,y轴为垂直方向,而z轴为垂直于屏幕的方向. 不理解的话可以参 ...
- 简单几步用纯CSS3实现3D翻转效果
作为前端开发人员的必修课,CSS3翻转能带我们完成许多基本动效,本期我们将用CSS3实现hover翻转效果~ 第一步非常简单,我们简单画1个演示方块,为其 添加transition和transform ...
- CSS3之3D立方体效果
下面代码可实现3D立方体,比较好理解,就是让每个面先平移到指定位置,然后旋转90度 <!DOCTYPE html> <html lang="en"> < ...
- CSS3 实现3D旋转木马效果
基本原理: 1.首先我们需要让图片能旋转的效果,我们让所有图片绝对定位(position:absolute),共用一个中心点. 2.对于舞台我们加一个视距,比如下面的demo是 perspective ...
- Html5+css3实现3D转动效果
由于最近一直在忙着筹划去上海工作的事情,所以博客更新的速度也就慢了下来.前几天面试了几家公司,也拿到几份offer,总结了一些面试中遇到的问题,最近整理一下会和大家一起分享.今天呢,就和大家分享一下前 ...
- css3图片3D翻转效果
点击图片看翻转效果 html结构 <div class="flip"> <div class="front"> <img src= ...
随机推荐
- CAA调试
在需要调试的Module(*.m)上右键,选择属性,命令位置选择你的framework目录 路径选择对应工程目录下的\intel_a(或者Win64 -- 64位机器) 然后就可以尽 ...
- Android Adapter代码片
/** * Adapter for grid of coupons. */ private static class CouponAdapter extends BaseAdapter { priva ...
- 给WebApp加一个“壳”,实现Andriod系统添加到桌面
IOS系统的Safari浏览器有一个“添加到桌面”的功能,能在手机桌面上为你的Webapp添加一个快捷方式,其外观和Native App看起来一样. 这个功能对Webapp来说太有用了,它能让用户像“ ...
- python cmd模块练习
# encoding=utf-8 import cmd import sys # cmd模块练习 class Client(cmd.Cmd): ''' 1)cmdloop():类似与Tkinter的m ...
- The package does not support the device architecture (x86). You can change the supported architectures in the Android Build section of the Project Opt
The package does not support the device architecture (x86). You can change the supported architectur ...
- ImageView图片不显示---------记glide框架使用时遇到的问题
最近在开发项目的时候,使用了谷歌推荐的glide框架,却发现了一个莫名奇妙的问题,就是imageview始终不显示图片! 发现图片不显示 但是改为安卓本身自带的ic_launch可以显示ic_laun ...
- Oracle EBS-SQL (CST-2):检查有BOM但成本不基于累积的数据.sql
select c.segment1 物料编码, ...
- Oracle EBS-SQL (BOM-18):检查BOM与工艺路线对照.sql
/*有工艺路线,无BOM清单*/ select msi.segment1, msi.description from apps.BOM_OPERATIONAL_ROUTINGS bor, apps.m ...
- java中HashSet实现(转)
hashset底层的数据结构是hash表,hash表实现方式采用数组+链表,数组类型为HashNode,每个数组元素为链表的头指针,链表中存储经过hash函数散列后冲突的元素,数组的长度为26 has ...
- 【UVA 10307 Killing Aliens in Borg Maze】最小生成树, kruscal, bfs
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20846 POJ 3026是同样的题,但是内存要求比较严格,并是没有 ...