今天继续来看一个纯CSS实现的3D折纸效果,效果如下图。基于上一个效果《纯CSS实现图像3D悬停效果》而开发的,没有看过的童鞋欢迎移步。
本效果原理如下图所示,分别用.img,.img:before和.img:after三个元素装载图像的50%,30%和20%三个部分,三个部分设置一样的背景图像,下面两个background-position属性实现背景偏移。然后分别对30%和20%两个元素实现旋转的动画,设置相同的变换效果,不同的变换延迟时间实现依次变换。注意打开、关闭两个状态的延迟设置不同。
好的,来看效果实现过程,html依然是非常简单。
<div class="container">
<div class="img" data-text="Hello Girl"></div>
</div>
CSS稍微复杂点,捋清楚思路也是挺简单的。
/* 为了简化操作,本效果使用了prefix free,因此可勿略可恶的厂商前缀。 */
/* 背景还是弄个渐变 */
body {
min-height:600px;
background: linear-gradient( hsl(200,51%,40%), #E0D7A3);
}
/* 容器的设置,容器的宽和高的设置非常重要,因为后面很多数值都是相对数值。 */
.container{
width:300px;
height:360px;
margin:50px auto;
}
.img{
/* 这个宽和高的百分比基于父对象--.container */
width:100%;
height:50%;
/* 引入图像,同时通过设置background-size实现背景图像的缩放 */
background: url("http://www.cmen.cc/uploadfile/2013/1212/20131212044827530.jpg");
background-size:100%;
/* 实现before和after两个伪类对象的绝对定位的“钩子” */
position:relative;
}
.img:before{
content:"";
/* 本伪类里面的百分比基于.img */
width:100%;
height:75%;
position:absolute;
top:100%;
left:0;
/* 背景设置及偏移 */
background: url("http://www.cmen.cc/uploadfile/2013/1212/20131212044827530.jpg");
background-size:100%;
background-position:0 -180px;
/* 变换设置,注意延迟的设置,这里是关闭时的效果 */
transform-style: preserve-3d;
transform-origin: center top;
transform: perspective(250px) rotateX(-90deg);
transition: 0.2s ease 0.2s;
}
.img:after{
content:"";
/* 本伪类里面的百分比基于.img */
width:100%;
height:50%;
position:absolute;
top:175%;
left:0;
/* 背景设置及偏移 */
background: url("http://www.cmen.cc/uploadfile/2013/1212/20131212044827530.jpg");
background-size:100%;
background-position:0 -316px;
/* 变换设置,注意延迟的设置,这里是关闭时的效果 */
transform-style: preserve-3d;
transform-origin: center top;
transform: perspective(250px) rotateX(-90deg);
transition: 0.2s ease 0s;
}
.container:hover .img:before{
/* 注意延迟的设置,这里是打开时的效果 */
transition: 0.2s linear 0s;
transform: perspective(350px) rotateX(0deg);
}
.container:hover .img:after{
/* 注意延迟的设置,这里是打开时的效果 */
transition: 0.2s linear 0.2s;
transform: perspective(350px) rotateX(0deg);
}
相信大家结合注释应该能看明白,不再具体具体解释代码书写过程,大家可以到codepen在线编辑或下载本效果。
---------------------------------------------------------------
前端开发whqet,关注web前端开发技术,分享网页相关资源。
---------------------------------------------------------------
分享到:
相关推荐
纯CSS3按钮3D效果,在鼠标点击按钮时,按钮会有下凹的视觉效果,非常好看。
纯css实现的3d翻转效果,可以用来学习理解css的3d动画实现,思路借鉴。
今天特意整理了一个只用纯CSS3实现的3D立体式文字滚动效果 非常棒,特意整理了跟大家分享一下 使用方法: 1、将CSS样式拷贝到你的网页中 2、将body中需要的代码部分拷贝到你需要的地方即可
原生js和css实现3D波浪效果图
用HTML+CSS制作3D旋转木马效果 用HTML+CSS制作3D旋转木马效果 用HTML+CSS制作3D旋转木马效果 用HTML+CSS制作3D旋转木马效果 用HTML+CSS制作3D旋转木马效果 用HTML+CSS制作3D旋转木马效果 用HTML+CSS制作...
Html5+js+CSS3实现3D旋转效果
纯css3 3D旋转科技球体动画特效 纯css3 3D旋转科技球体动画特效
不需要有任何JavaScript操作,使用纯css控制静态图片实现页面动态的雪花飘落效果。
纯CSS3实现百叶窗动画效果 纯CSS3实现百叶窗动画效果
纯CSS实现图片美化带边框3D效果鼠标经过旋转堆叠特效动画代码下载。
纯css3实现的3D折纸鸟飞行动画场景特效源码.zip
通过HTML + CSS 实现web前端选项卡效果,写这个的初衷就在于那个亘古不变的道理,能用CSS解决的就不用js
纯CSS实现鼠标经过3D立体动态展示(女朋友)图片特效代码,表白神器
只用css和html实现3d魔方效果,代码简单,效果美观
纯CSS3实现超级炫酷3D效果源码下载 纯CSS3实现超级炫酷3D效果源码下载
iPhone 6刚发布不久,今天我们就用纯CSS3来把iPhone 6的外观简单地绘制出来,记得是用纯CSS3实现的哦,没有用一张图片。由于CSS3特性的运用,整个iPhone 6手机边框带有阴影,很有立体3D的视觉效果。
简单炫酷好理解纯css,遇到问题可咨询博主哦
之前我们分享过一些HTML5图片3D效果,这篇文章分享10款效果惊艳的HTML5图片特效中...今天我们再来分享一款利用纯CSS3实现的3D图片翻转展示特效,点击图片或者下方的翻页按钮即可选中相应的图片,并实现翻转展示效果。
纯css实现的红色自行车效果是一款利用纯CSS3实现的自行车动画,这个自行车是可以运动的,就像有一个人在骑车一样,车轮也会转动,非常逼真的一款动画效果。