热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

纯CSS实现3D翻牌效果

CSS3演武场继续CSS案例研究,今天来看一个纯CSS实现的3D翻牌效果。简易效果请大家狠戳这里在线体验,或下载收藏。改进效果请大家戳这里在线体验,或下

CSS3演武场继续CSS案例研究,今天来看一个纯CSS实现的3D翻牌效果。

简易效果请大家狠戳这里在线体验,或下载收藏。

改进效果请大家戳这里在线体验,或下载收藏。

html部分我们用flip类做翻转的盒子,x和y两个类分别代表垂直翻转和水平翻转。front和back两个div做翻转图像的正面和反面。










嗯,接下来看看CSS,首先我们需要布局好元素

/* 顶部的盒子 */
.container{
width:1320px;
margin:50px auto;
}
/* 翻转类样式 */
.flip{
width:640px;
height: 320px;
margin:10px;
float:left;
position: relative;
}
/* 前后两个类的共同样式 */
.flip div{
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
box-shadow: 2px 2px 20px rgba(0,0,0,.5);
}
/* 提示文本利用:before伪对象到位 */
.flip div:before{
content:attr(data-text);
width:100%;
height:30px;
position:absolute;
left:0;
bottom:0;
line-height:30px;
text-align:center;
color:#fff;
background-color:rgba(0,0,0,.3);
}
/* 分别设置前后两个类的背景图像,垂直位置 */
.flip div.front{
background: url(http://thecodeplayer.com/uploads/media/3yiC6Yq.jpg);
z-index: 1;
}
.flip div.back{
background: url(http://thecodeplayer.com/uploads/media/40Ly3VB.jpg);
z-index: 2;
}
然后我们需要让flip响应hover事件,添加transform和transition
/* 翻转类样式 */.flip{  /*其他代码略*/  /* 设置景深 */  perspective: 1000px;}/* 前后两个类的共同样式 */.flip div{   /*其他代码略*/  transition: all 1s ease;   transform-style: preserve-3d;   backface-visibility: hidden;}/* hover之后的垂直位置 */.flip:hover div.front{ z-index: 2;;}.flip:hover div.back{ z-index: 1;;}/* rotateY的响应 */.Y div.back{ transform:rotateY(180deg);}.Y:hover div.front{ transform:rotateY(180deg);}.Y:hover div.back{ transform:rotateY(0deg);}/* rotateX的响应 */.X div.back{ transform:rotateX(180deg);}.X:hover div.front{ transform:rotateX(180deg);}.X:hover div.back{ transform:rotateX(0deg);}
好的,简易效果完工!接下来我们实现slider,单击播放下一个图像,到这里看 效果。这个效果用了input单选框来实现单击事件。
CSS部分也要改进下。

.gallery {

}
.gallery input {
display:none;
position:absolute;
}
.container {
position: relative;
height:640px;
width:320px;
transition: 1.5s ease-in-out;
}
.container div {
position:absolute;
left:0;
top:0;
width:640px;
height:320px;
transition: 1.5s ease-in-out;
border:1px solid #888;
backface-visibility: hidden;
-webkit-perspective: 1200px;
}
.container div.front {
transform: rotateY(180deg);
}
.container div.back {
transform: rotateY(0deg);
}
.container label {
display:block;
width:640px;
height:320px;
position:absolute;
left:0;
top:0;
display:none;
cursor:pointer;
}
input:nth-of-type(2n):checked ~ .container div.front {
transform: rotateY(0deg);
}
input:nth-of-type(2n+1):checked ~ .container div.front {
transform: rotateY(180deg);
}
input:nth-of-type(2n):checked ~ .container div.back {
transform: rotateY(-179.9deg);
}
input:nth-of-type(2n+1):checked ~ .container div.back {
transform: rotateY(0deg);
}

#p1:checked ~ .container label:nth-of-type(2) {
display:block;
}
#p1:checked ~ .container div.front {
background:url(http://thecodeplayer.com/uploads/media/8k3N3EL.jpg);
}
#p1:checked ~ .container div.back {
background:url(http://thecodeplayer.com/uploads/media/3yiC6Yq.jpg);
}
#p2:checked ~ .container label:nth-of-type(3) {
display:block;
}
#p2:checked ~ .container div.front {
background:url(http://thecodeplayer.com/uploads/media/40Ly3VB.jpg);
}
#p2:checked ~ .container div.back {
background:url(http://thecodeplayer.com/uploads/media/8k3N3EL.jpg);
}
#p3:checked ~ .container label:nth-of-type(4) {
display:block;
}
#p3:checked ~ .container div.front {
background:url(http://thecodeplayer.com/uploads/media/40Ly3VB.jpg);
}
#p3:checked ~ .container div.back {
background:url(http://thecodeplayer.com/uploads/media/00kih8g.jpg);
}

#p4:checked ~ .container label:nth-of-type(5) {
display:block;
}
#p4:checked ~ .container div.front {
background:url(http://thecodeplayer.com/uploads/media/2rT2vdx.jpg);
}
#p4:checked ~ .container div.back {
background:url(http://thecodeplayer.com/uploads/media/00kih8g.jpg);
}
#p5:checked ~ .container label:nth-of-type(1) {
display:block;
}
#p5:checked ~ .container div.front {
background:url(http://thecodeplayer.com/uploads/media/2rT2vdx.jpg);
}
#p5:checked ~ .container div.back {
background:url(http://thecodeplayer.com/uploads/media/8k3N3EL.jpg);
}

完工!

---------------------------------------------------------------

前端开发whqet,关注web前端开发技术,分享网页相关资源。
---------------------------------------------------------------



                        
                        
                 

推荐阅读
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • css div中文字位置_超赞的 CSS 阴影技巧与细节
    本文的题目是CSS阴影技巧与细节。CSS阴影,却不一定是box-shadow与filter:drop-shadow,为啥?因为使用其他属性 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了如何使用n3-charts绘制以日期为x轴的数据,并提供了相应的代码示例。通过设置x轴的类型为日期,可以实现对日期数据的正确显示和处理。同时,还介绍了如何设置y轴的类型和其他相关参数。通过本文的学习,读者可以掌握使用n3-charts绘制日期数据的方法。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • VBA操作Excel之设置单元格属性
    VBA操作Excel简介一、VBA读写Excel文件二、VBA设置单元格属性三、VBA弹出输入和输出窗口参考文档一、VBA读写Excel文件VBA简介及打开Excel文件方法见VB ... [详细]
  • 文章目录前言pandas主要分为如下几个阶段:表格数据操作:增删改查实现多个表格的处理数据清洗操作:缺失值、重复值、异常值、数据标准化、数 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • PHP编程能开发哪些应用?
    导读:很多朋友问到关于PHP编程能开发哪些应用的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
author-avatar
手浪用户2602890531
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有