css3 旋转效果加上双面显示效果
在学习Css3的过程中,我想做一个类似金字塔,菱形翻页效果,如图这种效果

如是,我自己设计了一个,不带js的旋转效果:
1>第一步我先设计了一个方块,内含一个旋转了45deg的小方块,代码如下:
<div style="width: 141.4px;height: 141.4px; background-color: green;">
<div style="width: 100px; height: 100px; transform:rotate(45deg); margin-left: 20px;margin-top: 20px; background-color: red; position: absolute;"></div>
</div>
效果图如下:

2>第二步,由于是要在3d旋转180deg后可以看到方块背后的内容,所以复制第一个方块的代码,并将background-color颜色改成其他颜色,便于观察。通过定位opaction,使两个方块重叠。
<div class="out" style="width: 141.4px; height: auto;">
<div class="rotate" style="width: 141.4px; height: auto;">
<div style="width: 141.4px;height: 141.4px; background-color: green;">
<div style="width: 100px; height: 100px; transform:rotate(45deg); margin-left: 20px;margin-top: 20px; background-color: red; position: absolute;"></div>
</div>
<div class="back" style="width: 141.4px;height: 141.4px; position: absolute;top: 0; background-color: yellow;">
<div style="width: 100px; height: 100px; transform:rotate(45deg); margin-left: 20px;margin-top: 20px; background-color: blueviolet; position: absolute;"></div>
</div>
</div>
</div>
3>为了让方块旋转起来,加上css样式代码
body{margin:;padding:;}
.rotate{
transition: 2s ease;
}
.out:hover .rotate{
transform:rotateY(180deg);
transition: 2s ease;
}
现在问题来了,查看效果时,发现始终只有一个一个方块在翻转,第二个方块被覆盖了,被上层的方块给挡住了。ps:这里困扰了我一两个小时。
查css3 手册,及网上资料时发现,css3的3d旋转效果,并没有分层的这种思想,直接是以你看的视角为主,没有实际透视的那么直接。效果上说明是3d的旋转实际上你是看不到下层被遮挡的部分的,这里我一开始是使用translateZ,来解决这个问题,但实际上是不成的,还是会覆盖。所以其实最好的方法就是调透明度,既然下层的部分是被覆盖了,那我让上层的部分在翻转时,透明不就可以了,实事证明这是可行的且正确的 ,代码如下:
.back{
opacity: 0.4;
transition: 1s opacity;
}
.out:hover .back{opacity:;}
现在做成那种效果只需要布局就可以了。
完整代码如下:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<style>
body{margin: 0;padding:0;} .rotate{
transition: 2s ease;
}
.out:hover .rotate{
transform:rotateY(180deg);
transition: 2s ease;
}
.back{
opacity: 0.4;
transition: 1s opacity;
}
.out:hover .back{opacity: 1;}
</style>
</head>
<body>
<div style="width: 960px;height: 400px;">
<div class="out" style="width: 141.4px; height: auto;">
<div class="rotate" style="width: 141.4px; height: auto;">
<div style="width: 141.4px;height: 141.4px; background-color: green;">
<div style="width: 100px; height: 100px; transform:rotate(45deg); margin-left: 20px;margin-top: 20px; background-color: red; position: absolute;"></div>
</div>
<div class="back" style="width: 141.4px;height: 141.4px; position: absolute;top: 0; background-color: yellow;">
<div style="width: 100px; height: 100px; transform:rotate(45deg); margin-left: 20px;margin-top: 20px; background-color: blueviolet; position: absolute;"></div>
</div>
</div>
</div> </div> </body>
</html>
现在复制代码就可以运行了
补充说明,兼容性问题:
由于我只在IE11下测试,兼容性出现一点问题,如果在IE下运行,需要在父标签,class="out",这个div中加上transform-style:preserve-3d;告诉浏览器执行3d效果
交流学习:1689986723
感谢@上位者的怜悯的指正!
css3 旋转效果加上双面显示效果的更多相关文章
- 一个css3 旋转效果 -- 待续
<div class="container"> <div> <figure></figure> <figure>< ...
- 网页前端开发:微博CSS3适用细节初探
浏览器,作为一神器,帮我们打开了缤纷万千的网络世界窗口.而她发展到今天,也诞生了一个又一个的怀神版本,可能有人钟情于她的花哨,有人痴迷于她的速度……我们,作为重构工程师,必然要更关注他背后的技术革新, ...
- css3图片翻转
<!DOCTYPE> <html lang="en"> <head> <meta http-equiv="Content-Typ ...
- CSS3性能体验
如今许多新技术名词在不断的被提及中,已然向我们靠近.某篮球运动员说了:“变向过人”不是超级明星的专利,也许我也可以试着去做,现在看起来效果还不错...那么,现在我们来体验CSS3:CSS3中的动画功能 ...
- 2015/11/7用Python写游戏,pygame入门(7):碰撞检测
我们已经完成了飞机大战的大部分东西,但是游戏还是没有办法正式开玩,因为子弹并不能打掉飞机.只有完成了这一个工作,游戏才算基本成型. 今天的内容就非常简单了,就是做到这个碰撞检测,以及控制好子弹和飞机的 ...
- 开胃小菜——impress.js代码详解
README 友情提醒,下面有大量代码,由于网页上代码显示都是同一个颜色,所以推荐大家复制到自己的代码编辑器中看. 今天闲来无事,研究了一番impress.js的源码.由于之前研究过jQuery,看i ...
- Css3动画(一) 如何画3D旋转效果或者卫星围绕旋转效果
如何画3D旋转效果或者卫星围绕旋转效果,当然这个也是工作中的一个任务,我在网上翻了一下,并没有找到类似的东西,所以写下来还是费了一番功夫,因此我把它拿出来记录一下,当然替换了一部分内容.好了,话不多说 ...
- css3 3D旋转效果
css3 record2 css3 3D旋转效果 需理解transform css3知识: keyframes transform perspective jsfiddle demo keyframe ...
- 多种css3时尚侧栏菜单展开显示效果Off-Canvas Menu Effects
今天我们想分享多种css3时尚侧栏菜单展开显示效果.侧边栏应用广泛,我们之前已经产生了一些效果灵感.风格演变,今天我们要展示一套新的灵感的现代效果.不同的布局和菜单的同步转换和页面可以让一切看起来更有 ...
随机推荐
- 在vs中跑动kdtree 和 bbf
这两天的学习模型都来自:http://blog.csdn.net/masibuaa/article/details/9246493 所谓的bbf 英文名字叫做best bin first 译名:最优节 ...
- 【安卓面试题】使用SQLiteOpenHelper的getReadableDatabase()获得的数据库能不能,做写的操作
可以! 不要被Readable的意思误导啦,readable是可读的意思,但不代表不能写哦. getReadableDatabase() 会获取用于操作SQLiteDatabase的实例. getRe ...
- plsql设置窗口默认格式
一:plsql设置窗口默认格式 窗口视图设置完毕后,选择“窗口”菜单——点击“保存”版面. 等到下次重启后,就会呈现保存的版面. OK,设置完毕!
- hdu 1892 树状数组
思路:就是一个很普通的二维树状数组,注意的是x1,y1不一定在x2,y2的左下方. #include<iostream> #include<cstring> #include& ...
- NAT地址转换原理全攻略
NAT转换方式及原理 在NAT的应用中,可以仅需要转换内部地址(就是“内部本地址”转换成“内部全局地址”),这是最典型的应用,如内部网络用户通过NAT转换共享上网:也可以是仅需要转换外部地址(就是“外 ...
- ORACLE 小写金额转大写金额
Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is strYuan Varchar2(); str ...
- 【转】Android属性之build.prop,及property_get/property_set
简要分析一下build.prop是如何生成的.Android的build.prop文件是在Android编译时收集的各种property(LCD density/语言/编译时间, etc.),编译完成 ...
- .net转java了
公司技术部门 要求.net全体转向java 本来要看看.net core的 看来是没必要了 现在国内互联网公司.net是越来越少 不知道为何会这样 不过java的生态圈 确实是很强大 也很丰富 ...
- SVN Application
一.SVN客户端:TortoiseSvn 下载地址: http://tortoisesvn.net/downloads.html 安装完后重启, 右击就可以使用SVN命令 首先, 从服务器版本库那边 ...
- Cocos2d-x数据持久化-查询数据
数据查询一般会带有查询条件,这可以使用SQL语句的where子句实现,但是在程序中需要动态绑定参数给where子句.查询数据的具体操作步骤如下所示.(1) 使用sqlite3_open函数打开数据库. ...