php立方体相册源码,纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空)...

本篇文章所说的内容是纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空),代码都非常详细,有需要的朋友可以看一下。

一、正方体

我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所组成,其次就需要我们依次构造。(据体构造在代码中)

代码如下:

正方体

.d3{

height: 300px;

width:300px;

perspective: 800px;

margin:140px auto;

border:1px solid #ccc; }

.stage{

height: 300px;

width: 300px;

transform-style: preserve-3d;

position: relative;

transform: rotateX(45deg) rotateY(45deg);

}

.role{

height: 300px;

width: 300px;

position: absolute;

}

.stage{

animation: dong 3s linear infinite;(这是舞台)

}

.stage:hover{

animation: paused;

}

@keyframes dong{(这是使舞台旋转的动画)

from{

transform: rotateX(45deg) rotateY(45deg);

}

to{

transform: rotateX(405deg) rotateY(405deg);

}

}

.di1{(正方体的前面)

background: rgb(21, 163, 52);

transform: translateZ(150px);(沿着z轴向前移动150px)

font-size:100px;

font-family:KaiTi;

text-align: center;

line-height: 300px;

}

.di2{(正方体的后面)

background: blue;

transform: translateZ(-150px) rotateY(180deg);(沿着z轴向前移动150px然后沿着y轴旋转180°*注意顺序哦是先移动后旋转)

font-size:100px;

font-family:KaiTi;

text-align: center;

line-height: 300px;

}

.di3{(正方体的左面)

background: purple;

transform: rotateY(-90deg) translateZ(150px);

font-size:100px;

font-family:KaiTi;

text-align: center;

line-height: 300px;

}

.di4{(正方体的右面)

background: pink;

transform: rotateY(90deg) translateZ(150px);

font-size:100px;

font-family:KaiTi;

text-align: center;

line-height: 300px;

}

.di5{(正方体的上面)

background: red;

transform: rotateX(90deg) translateZ(150px);

font-size:100px;

font-family:KaiTi;

text-align: center;

line-height: 300px;

}

.di6{(正方体的下面)

background: yellow;

transform: rotateX(-90deg) translateZ(150px);

font-size:100px;

font-family:KaiTi;

text-align: center;

line-height: 300px;

}

(将正方体分为六个相同的面)

二、动态立体图片册

将图片册设计成立体3D的效果

利用旋转、移动、倾斜和3D效果让你的图册更加漂亮。

代码如下:(将第一张定好位置后将后面的依次排列)

事例一

body{

height: 100vh;

}

.div {

height: 500px;

width: 800px;

perspective: 800px;

margin: 50px auto;

}

.div1 {

height: 500px;

width: 800px;

transform-style: preserve-3d;

position: relative;

/* transform: rotateY(-10deg); */

}

.div_0{

height:400px;

width:600px;

position: absolute;

margin-top:110px;

margin-left:50px;

}

.div_1{

height:400px;

width:600px;

background: url(../day03/timg.jpg);

background-size: 600px 400px;

border-radius: 20px;

transform-origin: right bottom;

transition: 3s;

}

.div_2{

background: url(../day03/timg1.jpg);

border-radius: 20px;

background-size: 600px 400px;

transform-origin: right bottom;

transform: rotateZ(2deg) translateZ(-20px) translateX(20px) translateY(-20px);

}

.div_2:hover{

transform: rotateZ(0) translateZ(0)translateX(0)translateY(0);

transition: 1s;

}

.div_2:hover~.div_1{

/* transform-origin: right bottom; */

transform: rotateZ(2deg) translateZ(20px) translateX(20px) translateY(-20px);

transition: 1s;

}

/* body:hover .div_1{

opacity: 0;

transition: 3s;

} */

.div_3{

background: url(timg2.jpg);

border-radius: 20px;

background-size: 600px 400px;

transform-origin: right bottom;

transform: rotateZ(4deg)translateZ(-40px)translateX(40px)translateY(-40px);

}

.div_3:hover{

transform: rotateZ(0) translateZ(0)translateX(0)translateY(0);

transition: 1s;

}

.div_4{

background: url(timg4.jpg);

border-radius: 20px;

background-size: 600px 400px;

transform-origin: right bottom;

transform: rotateZ(6deg)translateZ(-60px) translateX(60px)translateY(-60px);

}

.div_4:hover{

transform: rotateZ(0) translateZ(0)translateX(0)translateY(0);

transition: 1s;

}

.div_5{

background: url(timg5.jpg);

border-radius: 20px;

background-size: 600px 400px;

transform-origin: right bottom;

transform: rotateZ(8deg)translateZ(-80px) translateX(80px)translateY(-80px);

}

.div_5:hover{

transform: rotateZ(0) translateZ(0)translateX(0)translateY(0);

transition: 1s;

}

.div_6{

background: url(timg3.jpg) no-repeat;

border-radius: 20px;

background-size: 600px 400px;

transform-origin: right bottom;

transform: rotateZ(10deg)translateZ(-100px) translateX(100px)translateY(-100px);

}

.div_6:hover{

transform: rotateZ(0) translateZ(0)translateX(0)translateY(0);

transition: 1s;

}

三、平面的星空

代码如下:

(由于没有用js所以只有平面的效果了

你掌握好旋转的中心点就很容易了)

太阳系

body {

background: url(timg01.jpg) no-repeat;

background-size: 100%;

}

.box1 {

height: 600px;

width: 600px;

margin: 0 auto;

border: 1px solid #ccc;

border-radius: 50%;

}

.box1_0 {

height: 100px;

width: 100px;

margin: 0 auto;

border: 1px solid white;

border-radius: 50%;

position: absolute;

top: calc(50% - 59px);

left: 322px;

transform-origin: 345.5px;

animation: dong2 5s linear infinite 4s;

}

@keyframes dong2 {

from {

transform: rotate(0)

}

100% {

transform: rotate(360deg);

}

}

.box1_2 {

height: 13px;

width: 13px;

margin: 0 auto;

/* border: 1px solid #ccc; */

border-radius: 50%;

background: white;

position: absolute;

top: calc(50% - 7.5px);

left: 96px;

transform-origin: -45px;

animation: dong3 5.5s linear infinite ;

/* animation-iteration-count: 200; */

}

@keyframes dong3 {

from {

transform: rotate(0);

}

100% {

transform: rotate(360deg);

}

}

.box1_1 {

height: 15px;

width: 15px;

margin: 0 auto;

/* border: 1px solid #ccc; */

border-radius: 50%;

background: rgb(7, 100, 223);

position: absolute;

top: 45px;

left: calc(50% - 16.5px);

}

.box2 {

height: 400px;

width: 400px;

margin: 0 auto;

border: 1px solid #ccc;

border-radius: 50%;

position: absolute;

top: calc(50% - 200px);

left: calc(50% - 200px);

}

.box2_1 {

height: 15px;

width: 15px;

margin: 0 auto;

/* border: 1px solid #ccc; */

border-radius: 50%;

background: rgb(198, 208, 221);

position: absolute;

top: calc(50% - 7.5px);

left: 43px;

transform-origin: 157.5px;

animation: dong1 5s linear infinite .5s;

}

@keyframes dong1 {

from {

transform: rotate(0)

}

100% {

transform: rotate(360deg);

}

}

.box2_2 {

height: 15px;

width: 15px;

margin: 0 auto;

border-radius: 50%;

background: #644e11;

position: absolute;

top: calc(50% - 7.5px);

left: -7px;

transform-origin: 207.5px;

animation: dong 5s linear infinite;

}

@keyframes dong {

from {

transform: rotate(0)

}

100% {

transform: rotate(360deg);

}

}

.box3 {

height: 300px;

width: 300px;

margin: 0 auto;

border: 1px solid #ccc;

border-radius: 50%;

position: absolute;

top: calc(50% - 150px);

left: calc(50% - 150px);

}

.box4 {

height: 30px;

width: 30px;

margin: 0 auto;

border-radius: 50%;

background: orange;

position: absolute;

top: calc(50% - 15px);

left: calc(50% - 15px);

}

.boxli{

height: 900px;

width: 900px;

margin: 0 auto;

border: 1px solid #ccc;

border-radius: 50%;

position: absolute;

top:-120px;

left:calc(50% - 450px);

}

.boxli_1{

height: 15px;

width: 15px;

margin: 0 auto;

border-radius: 50%;

background: rgb(116, 100, 56);

position: absolute;

top:500px;

left:-6px;

transform-origin: 455.5px -38px;

animation: dongli 5s linear infinite;

}

@keyframes dongli {

from {

transform: rotate(0)

}

100% {

transform: rotate(360deg);

}

}

相关推荐:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的示例代码实现了一个基本的3D立方体旋转相册,您可以参考一下: HTML代码: ``` <div class="container"> <div class="box"> <div class="front"></div> <div class="back"></div> <div class="left"></div> <div class="right"></div> <div class="top"></div> <div class="bottom"></div> </div> </div> ``` CSS代码: ``` .container { perspective: 800px; margin: 0 auto; width: 300px; height: 300px; } .box { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: all 1s ease; } .box:hover { transform: rotateY(360deg); } .front, .back, .left, .right, .top, .bottom { position: absolute; width: 100%; height: 100%; border: 2px solid #fff; box-sizing: border-box; background-position: center; background-size: cover; } .front { transform: translateZ(150px); background-image: url(front.jpg); } .back { transform: rotateY(180deg) translateZ(150px); background-image: url(back.jpg); } .left { transform: rotateY(-90deg) translateZ(150px); background-image: url(left.jpg); } .right { transform: rotateY(90deg) translateZ(150px); background-image: url(right.jpg); } .top { transform: rotateX(90deg) translateZ(150px); background-image: url(top.jpg); } .bottom { transform: rotateX(-90deg) translateZ(150px); background-image: url(bottom.jpg); } ``` 在这段代码中,我们使用了CSS3的`transform`属性来控制立方体的旋转和平移,`transition`属性实现了过渡效果。通过设置`background-image`属性来添加图片相册中的每一个面都有独立的图片。 您可以根据您的需要,修改图片和样式,来创建您自己的3D立方体旋转相册

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值