首页 > 作文

荐 CSS3——3D变形及轮播图,开门,导航栏旋转特效的应用

更新时间:2023-04-07 12:14:43 阅读: 评论:0

我还是从前那个少年

3D变形(CSS3) transformrotateX()rotateY()rotateZ()透视(perspective)translateX(x)translateY(y)translateZ(z) ( 多做测试理解 )translate3d(x,y,z)backface-visibility案例1:旋转的轮播图案例2:开门大吉案例3:导航栏旋转

3D变形(CSS3) transform

2d x y
3d x y z

左手坐标系

伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。这样我们就建立了一个左手坐标系,拇指、食指和中指分别代表X、Y、Z轴的正方向。如下图

CSS3中的3D坐标系与上述的3D坐标系是有一定区别的,相当于其绕着X轴旋转了180度,如下图

简单记住他们的坐标:

x左边是负的,右边是正的

y 上面是负的, 下面是正的

z 里面是负的, 外面是正的

rotateX()

就是沿着 x 立体旋转.

img {  transition:all 0.5s ea 0s;}img:hove {  transform:rotateX(180deg);}

rotateY()

沿着y轴进行旋转

img {  transition:all 0.5s ea 0s;}img:hove {  transform:rotateX(180deg);}

rotateZ()

沿着z轴进行旋转

img {  transition:all .25s ea-in 0s;}img:hover {  /* transform:rotateX(180deg); */  /* transform:rotateY(180deg); */  /* transform:rotateZ(180deg); */  /* transform:rotateX(45deg) rotateY(180deg) rotateZ(90deg) skew(0,10deg); */}

透视(perspective)

电脑显示屏是一个2D平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现,通过透视可以实现此目的。

透视可以将一个2D平面,在转换的过程当中,呈现3D效果。

透视原理: 近大远小 。浏览器透视:把近大远小的所有图像,透视在屏幕上。perspective:视距,表示视点距离屏幕的长短。视点,用于模拟透视效果时人眼的位置

注:并非任何情况下需要透视效果,根据开发需要进行设置。

perspective 一般作为一个属性,设置给父元素,作用于所有3D转换的子元素

理解透视距离原理:

translateX(x)

仅水平方向移动(X轴移动)

主要目的实现移动效果

translateY(y)

仅垂直方向移动(Y轴移动)

translateZ(z) ( 多做测试理解 )

transformZ的直观表现形式就是大小变化,实质是XY平面相对于视点的远近变化(说远近就一定会说到离什么参照物远或近,在这里参照物就是perspective属性)。比如设置了perspective为200px;那么transformZ的值越接近200,就是离的越近,看上去也就越大,超过200就看不到了,因为相当于跑到后脑勺去了,我相信你正常情况下,是看不到自己的后脑勺的。

translate3d(x,y,z)

其中,x和y可以是长度值,也可以是百分比,百分比是相对于其本身元素水平方向的宽度和垂直方向的高度和;z只能设置长度值

backface-visibility

backface-visibility 属性定义当元素不面向屏幕时是否可见。

案例1:旋转的轮播图

<!DOCTYPE html><html lang="en">    <head>        <meta chart="utf-8">        <style> body { perspective: 1000px; } ction { width: 300px; height: 200px; margin: 100px auto; background: url(../3D/images/1.jpg)猜火车 台词 no-repeat; background-size: cover; position: relative; transform-style: prerve-3d; /* 让父盒子里面的子盒子以3d效果显示 */ transition: 5s linear; /* 匀速 all 是可以省略的, 省略默认的all*/ } ction:hover { transform: rotateY(360deg); } ction div { width: 100%; height: 100%; background: url(../3D/images/2.jpg) no-repeat; background-size: cover; position: absolute; top: 0; left: 0; } ction div:nth-child(1) { transform: rotateY(0deg) translateZ(400px); } ction div:nth-child(2) { transform: rotateY(60deg) translateZ(400px); } ction div:nth-child(3) { transform: rotateY(120deg) translateZ(400px); } ction div:nth-child(4) { transform: rotateY(180deg) translateZ(400px); } ction div:nth-child(5) { trlo什么意思ansform: rotateY(240deg) translateZ(400px); } ction div:nth-child(6) { transform: rotateY(300deg) translateZ(400px); } </style>    </head>    <body><ction><div></div><div></div><div></div><div></div><div></div><div></div></ction>    </body></html>

案例2:开门大吉

<!doctype html><html lang="en"><head>    <meta chart="UTF-8">    <title>Document</title>    <style> ction { width: 450px; height: 300px; border: 1px solid #000; margin: 100px auto; background: url(images/1.jpg) no-repeat; position: relative; perspective: 1000px; /*给父盒子添加透视效果*/ } .door-l, .door-r { position: absolute; top: 0; width: 50%; height: 100%; background-color: pink; transition: all 1s; /*两个门都做过渡效果*/ background: url(images/bg.png); } .door-l { left: 0; border-right: 1px solid #000; transform-origin: left;/* 左侧盒子按照左边翻转*/ } .door-r { right: 0; left: 1px solid #000; transform-origin: right;/* 右侧盒子按照右边翻转*/ } .door-l::before, .door-r河南省考生服务平台::before { /*伪元素 就是插入一个元素标签*/ content: ''; position: absolute; top黄花鱼的家常做法: 50%; width: 20px; height: 20px; border: 1px solid #000; border-radius: 50%; /*圆角*/ transform:translateY(-50%); /*translate 如果是百分比, 就是走自己高度的一半*/ } .door-l::before { right: 5px; } .door-r::before { left: 5px; } /*鼠标经过ction 盒子 两个门盒子 翻转 rotateY*/ ction:hover .door-l { transform: rotateY(-130deg); /*因为往左边翻转,所以是负值*/ } ction:hover .door-r { transform: rotateY(130deg); } </style></head><body><ction>    <div class="door-l"></div>    <div class="door-r"></div></ction></body></html>

案例3:导航栏旋转

<!DOCTYPE黑龙江2019高考分数线 html><html lang="en"><head>  <meta chart="UTF-8">  <title>3d导航</title>  <style type="text/css"> * { margin: 0; padding: 0; } ul { /*取消ul的默认样式*/ list-style: none; margin: 90px auto; width: 800px; } ul li { width: 160px; height: 50px; float: left; position: relative; /*设置子元素显示方式为3d*/ transform-style:prerve-3d; /*设置旋转的过渡效果*/ transition: transform 1s; } li a { position: absolute; /*设置了相对定位的元素,默认具有块元素的特点*/ /*取消a链接的默认下划线*/ text-decoration: none; text-align: center; line-height: 50px; color: #fff; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8); top: 0; left: 0; width: 100%; height: 100%; } li a:first-child { transform: translateZ(25px); background-color: #ff5544; } li a:last-child { background-color: skyblue; transform: rotateX(-90deg) translateZ( 25px ); } li:hover { transform: rotateX(90deg); } </style></head><body>  <ul>    <li>     <a href="#">信息科学与工程学院</a>     <a href="#">Javaweb专业</a>    </li>    <li>     <a href="#">信息科学与工程学院</a>     <a href="#">Javaweb专业</a>    </li><li>     <a href="#">信息科学与工程学院</a>     <a href="#">Javaweb专业</a>    </li><li>     <a href="#">信息科学与工程学院</a>     <a href="#">Javaweb专业</a>    </li><li>     <a href="#">信息科学与工程学院</a>     <a href="#">Javaweb专业</a>    </li>  </ul></body></html>

本文地址:https://blog.csdn.net/weixin_45525272/article/details/107355772

本文发布于:2023-04-07 12:14:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/d02ea258a1835a7898ec7428d7fea473.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:荐 CSS3——3D变形及轮播图,开门,导航栏旋转特效的应用.doc

本文 PDF 下载地址:荐 CSS3——3D变形及轮播图,开门,导航栏旋转特效的应用.pdf

标签:透视   效果   盒子   元素
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图