广告
返回顶部
首页 > 资讯 > 精选 >css3如何实现3d翻转效果
  • 768
分享到

css3如何实现3d翻转效果

2023-06-14 18:06:23 768人浏览 独家记忆
摘要

今天小编给大家分享的是css3如何实现3D翻转效果,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。什么是CSScss是一种用来表现html或XML等文件样式的计算机语言,主要是用来设计

今天小编给大家分享的是css3如何实现3D翻转效果,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

什么是CSS

css是一种用来表现html或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。

在css3中,可以使用transfORM属性配合rotateY()、rotateX()等3d旋转函数来实现3d翻转效果。rotateX()可以使元素绕其X轴旋转给定角度,rotateY()可以使元素绕其Y轴旋转给定角度。

一、实现一张图片的翻转

1、HTML结构

<div class="stage">    <div class="flipBox">        <figure class="pic front">Front</figure>        <figure class="pic back">Back</figure>    </div></div>

上述HTML的结构是:

  • p.stage规定了一个3D舞台,基本上所有使用CSS3 3D变换的实现都会这么做,规定perspective样式从而达到透视效果

  • p.flipBox是真正实现翻面的容器,稍后将对它进行3D变换

  • figure代表两张图片,一张是正面,一张是背面

思路是:将figure.front和figure.back作为翻转图片的正反面。图片翻转后,figure.back将变成面对用户的那一面,figure.front将背对用户。

初始状态下figure.back是水平翻转过的(即transform: rotateY(180deg)),这样图片翻转后背面的文字将正着显示(否则翻转过来以后背面的文字是倒着的——因为反转之前是正着的嘛~)。

3、CSS结构

body,figure {    margin: 0;    padding: 0;}.stage {    width: 200px;    height: 100px;    margin: 40px;    perspective: 1000px;}.flipBox {    width: 200px;    height: 100px;    position: relative;    transform-style: preserve-3d;    transition: transform 1s;}.pic {    width: 200px;    height: 100px;    font-size: 24px;    color: #fff;    line-height: 100px;    text-align: center;    position: absolute;    top: 0;    left: 0;    backface-visibility: hidden;}.front {    background: #f00;}.back {    background: #090;    transform: rotateY(180deg);}

现在分析每个元素的CSS:

body,figure {    margin: 0;    padding: 0;}

没什么好说的,去掉内外边距!

.stage {    width: 200px;    height: 100px;    margin: 40px;    perspective: 1000px;}

为3D舞台定义样式。margin是为了距离浏览器左边和上边有一些距离,让变换显示的更完整。perspective规定了3D元素距摄像机(或人眼)的距离,值越小3D元素离人眼越近,值越大3D元素离人眼越远。

.flipBox {    width: 200px;    height: 100px;    position: relative;    transform-style: preserve-3d;    transition: transform 1s;}

为翻转盒子定义样式。这个元素是真正进行3D变换的元素。其position属性是为其两个子figure元素创造定位点,以便两个子figure元素定位到p.flipBox的左上角实现两张图片的对齐。transform-style属性是必须的,这规定了p.flipBox元素的后代元素是以哪种形式进行3D变换(preserve-3d表示后代元素任然以3d的模式进行变换;另一个值flat表示只对p.flipBox进行3D变换,后代元素则只是p.flipBox平面中的内容,不进行3D变换),这和After Effect中的伪3D十分相似。transition规定只变换transform属性,时间为1s.

.pic {    width: 200px;    height: 100px;    font-size: 24px;    color: #fff;    line-height: 100px;    text-align: center;    position: absolute;    top: 0;    left: 0;    backface-visibility: hidden;}

为两张图片(这里的两个figure)规定统一的样式。使用绝对定位,定位到p.flipBox的左上角,而两个figure的大小又是一样的,所以完美重叠。backface-visibility是一个重要的属性,它规定背对用户的3D元素是否显示,这里应该规定为不显示(hidden),否则不该显示背面的时候背面会显示出来。比如初始状态,显然不应该显示figure.back,但又因为figure.back是后渲染的,所以会覆盖在figure.front上,我们之前为figure.back规定了transform: rotateY(180deg),所以figure.front是背对用户的,将不显示。再比如翻转过后,figure.front会挡在figure.back前面,不过此时figure.front将会背对用户,所以被backface-visibility隐藏了,这正是我们想要的。

.front {    background: #f00;}

规定了图片正面为红色。

.back {    background: #090;    transform: rotateY(180deg);}

规定了图片背面为绿色,同时,transform: rotateY(180deg)规定在初始状态,figure.back是水平翻转180°的。

3、开始旋转图片

.stage:hover .flipBox { transform: rotateY(-180deg);}

当鼠标移入3D舞台时,将p.flipBox旋转-180°,实现图片翻转效果。这里让p.flipBox旋转+180°也是可以的,只是旋转的方向不同罢了。
css3如何实现3d翻转效果

二、案例

1、图片准备

为减少Http请求,这里使用精灵图。
css3如何实现3d翻转效果
图片大小为200*200,分上下两部分,上方为翻转图片的正面(黑白),下方为翻转图片的背面(彩色)。上方和下方的loGo都经过水平居中和垂直居中,以保证翻转前后logo位置一致。

2、代码实现

<!doctype html><html><head>    <meta charset="UTF-8">    <title>javascript Study</title>    <style>        html,body,ul,li,a,figure,h5 {            padding: 0;            margin: 0;        }        ul {            list-style: none;        }        h5 {            display: none;        }        .Stage {            width: 604px;            height: 203px;            margin: 50px;            border-left: 1px solid #f5f5f5;            border-top: 1px solid #f5f5f5;            perspective: 10000px;        }        .trigger {            display: block;            float: left;            width: 200px;            height:100px;            border-right: 1px solid #f5f5f5;            border-bottom: 1px solid #f5f5f5;            position: relative;        }        .flipBox {            display: block;            width: 100%;            height: 100%;            transform-style: preserve-3d;            transition: transform 1.2s;            transition-delay: 0.03s;        }        .trigger:hover .flipBox {            transform: perspective(10000px) rotateY(-180deg);            }        .plane {            width: 200px;            height: 100px;            position: absolute;            top: 0;            left: 0;            backface-visibility: hidden;        }        .back {            transform: rotateY(180deg);        }        .logo1 figure.front {            background: url("pic.png") center 0 no-repeat;        }        .logo2 figure.front {            background: url("pic_2.png") center 0 no-repeat;        }        .logo3 figure.front {            background: url("pic_3.png") center 0 no-repeat;        }        .logo4 figure.front {            background: url("pic_4.png") center 0 no-repeat;        }        .logo5 figure.front {            background: url("pic_5.png") center 0 no-repeat;        }        .logo6 figure.front {            background: url("pic_6.png") center 0 no-repeat;        }        .logo1 figure.back {            background: url("pic.png") center -100px no-repeat;        }        .logo2 figure.back {            background: url("pic_2.png") center -100px no-repeat;        }        .logo3 figure.back {            background: url("pic_3.png") center -100px no-repeat;        }        .logo4 figure.back {            background: url("pic_4.png") center -100px no-repeat;        }        .logo5 figure.back {            background: url("pic_5.png") center -100px no-repeat;        }        .logo6 figure.back {            background: url("pic_6.png") center -100px no-repeat;        }    </style></head><body><div>    <ul>        <li>            <a class="flipBox logo1" href="#">                <h5>Fun Games</h5>                <figure class="plane front"></figure>                <figure class="plane back"></figure>            </a>        </li>        <li>            <a class="flipBox logo2" href="#">                <h5>Man Style</h5>                <figure class="plane front"></figure>                <figure class="plane back"></figure>            </a>        </li>        <li>            <a class="flipBox logo3" href="#">                <h5>Sims.</h5>                <figure class="plane front"></figure>                <figure class="plane back"></figure>            </a>        </li>        <li>            <a class="flipBox logo4" href="#">                <h5>Googla</h5>                <figure class="plane front"></figure>                <figure class="plane back"></figure>            </a>        </li>        <li>            <a class="flipBox logo5" href="#">                <h5>JavaScript</h5>                <figure class="plane front"></figure>                <figure class="plane back"></figure>            </a>        </li>        <li>            <a class="flipBox logo6" href="#">                <h5>Felix</h5>                <figure class="plane front"></figure>                <figure class="plane back"></figure>            </a>        </li>    </ul></div></body></html>

css3如何实现3d翻转效果
css3如何实现3d翻转效果

关于css3如何实现3d翻转效果就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

--结束END--

本文标题: css3如何实现3d翻转效果

本文链接: https://www.lsjlt.com/news/274232.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • css3如何实现3d翻转效果
    今天小编给大家分享的是css3如何实现3d翻转效果,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计...
    99+
    2023-06-14
  • CSS3如何实现3D翻书效果
    小编给大家分享一下CSS3如何实现3D翻书效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先上效果图:(样式有点丑,可以忽略一下下,效果出来了就好,后期加到其他项目中方便更改0.0)类似...
    99+
    2022-10-19
  • css3代码如何实现图形3d翻转效果
    这篇“css3代码如何实现图形3d翻转效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css3代码如何实现图形3d翻转效果...
    99+
    2023-07-04
  • css3中怎么实现图形3d翻转效果
    css3中怎么实现图形3d翻转效果,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。<!DOCTYPE html&...
    99+
    2022-10-19
  • 使用CSS3怎么实现一个3D翻转效果
    本篇文章给大家分享的是有关使用CSS3怎么实现一个3D翻转效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。第一步非常简单,我们简单画1个演示方块,为其 添加transitio...
    99+
    2023-06-08
  • css3如何3D色子翻转特效
    这篇文章主要讲解了“css3如何3D色子翻转特效”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3如何3D色子翻转特效”吧!第一步,首先进行HTML的布...
    99+
    2022-10-19
  • CSS如何实现卡片3D翻转效果
    这篇文章将为大家详细讲解有关CSS如何实现卡片3D翻转效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果:代码:html:<div class="main">...
    99+
    2023-06-08
  • css3怎么实现3D色子翻转特效
    本篇内容主要讲解“css3怎么实现3D色子翻转特效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3怎么实现3D色子翻转特效”吧!css3使我们能够跳出2d...
    99+
    2022-10-19
  • css3如何实现立体翻转效果
    今天给大家介绍一下css3如何实现立体翻转效果。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。在css3中,可以利用trans...
    99+
    2022-10-19
  • css3如何实现垂直翻转效果
    这篇文章主要介绍“css3如何实现垂直翻转效果”,在日常操作中,相信很多人在css3如何实现垂直翻转效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css3如何实现垂直翻转...
    99+
    2022-10-19
  • css3如何实现翻转2次效果
    这篇文章给大家分享的是有关css3如何实现翻转2次效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 方法:1、用“@keyframes 名称{100...
    99+
    2022-10-19
  • css3如何实现卡片翻转效果
    本文小编为大家详细介绍“css3如何实现卡片翻转效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3如何实现卡片翻转效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2022-10-19
  • css3怎么实现翻转效果
    这篇文章将为大家详细讲解有关css3怎么实现翻转效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css3实现翻转效果的方法:1、将外层元素设置perspective;2、将第二包裹层翻转180度,同时设...
    99+
    2023-06-14
  • css3怎么实现麻将筛子3D翻转特效
    这篇文章主要介绍“css3怎么实现麻将筛子3D翻转特效”,在日常操作中,相信很多人在css3怎么实现麻将筛子3D翻转特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css3...
    99+
    2022-10-19
  • HTML5+css3如何实现3D旋转木马效果
    这篇文章主要介绍HTML5+css3如何实现3D旋转木马效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、perspectiveperspective属性包括两个属性:none和...
    99+
    2022-10-19
  • css3+js如何实现3D行星运转效果
    这篇文章给大家分享的是有关css3+js如何实现3D行星运转效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML部分<div class="pat...
    99+
    2022-10-19
  • CSS3如何实现打造百度贴吧的3D翻牌效果
    这篇文章主要介绍CSS3如何实现打造百度贴吧的3D翻牌效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果图:实例用到的一些CSS3的新属性:a、-webkit-perspecti...
    99+
    2022-10-19
  • 怎么用css3实现麻将筛子3D翻转特效
    这篇文章主要介绍“怎么用css3实现麻将筛子3D翻转特效”,在日常操作中,相信很多人在怎么用css3实现麻将筛子3D翻转特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么...
    99+
    2022-10-19
  • 如何使用CSS3实现3D旋转透视效果
    本篇内容介绍了“如何使用CSS3实现3D旋转透视效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!你将学到...
    99+
    2022-10-19
  • CSS3 中怎么实现3D旋转rotate效果
    本篇文章为大家展示了CSS3 中怎么实现3D旋转rotate效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。效果图:示例代码XML/HTML Code复制内容到剪...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作