3d正方体旋转相册代码_3D旋转女友相册——实现思路详解

       3D旋转女友相册,以技术流方式,展示ta最漂亮,动人的一面。

        可作为表白礼物,纪念日礼物,节日礼物....

       作品主要是由HTML5+CSS3制作而成,视频效果演示:

源码下载地址:https://download.csdn.net/download/yuzongtao/12362410

现对开发思路讲解如下:

一、创建代码目录结构如下:

321bb8b674f6b59b6d0cc81d65dadf99.png

二、html代码逻辑:

(1)通过audio音频标签自动播放背景音乐。

<audio autoplay="autopaly">      <source src="http://www.170mv.com/kw/antiserver.kuwo.cn/anti.s?rid=MUSIC_450897&response=res&format=mp3|aac&type=convert_url&br=128kmp3&agent=iPhone&callback=getlink&jpcallback=getlink.mp3"       type="audio/mp3" />audio>

(2)对12张图片的处理逻辑,如下图所示:

        一个大的容器里包裹一大一小两个立方体,大立方体六个面各一张图片,小立方体六个面也是各一张图片。

       通过CSS3样式控制大小正方体进行3D旋转效果。

13b9cd153360441c3396dd909aa3d275.png

三、CSS样式详解:

       主要利用css3属性transform,preserve-3d,animation,@keyframes等属性来实现一个旋转相册的美观特效。

       下面需要注意的样式都写了详细的注释:

(1)设置整体背景色:黑色

html{    background: #000; /*黑色*/    height: 100%;    }

(2)设置最外层容器样式:绝对位置、长、宽等

/*最外层容器样式*/.wrap{     position: absolute;    top: 0;    right: 0;    bottom: 0;    left: 0;    width: 400px;    height: 400px;    margin: auto;  }

(3)包裹所有容器样式

.cube{    width: 400px;    height: 400px;    margin: 0 auto;    /*所有子元素在3D空间中呈现*/    transform-style: preserve-3d;    /*Transform属性应用于元素的2D或3D转换。*/    /*沿着X轴旋转 -30度, 沿着Y轴旋转 -80度*/    transform: rotateX(-30deg) rotateY(-80deg);    /*把 animation 绑定到rotate*/    -webkit-animation: rotate 20s infinite;    /*匀速*/    animation-timing-function: linear;}/*创建动画是通过逐步改变从一个CSS样式设定到另一个。*/@-webkit-keyframes rotate{    from{transform: rotateX(0deg) rotateY(0deg);}    to{transform: rotateX(360deg) rotateY(360deg);}}

(4)定义所有大立方体图片样式:长、宽

.pic{    width: 400px;    height: 400px;}

(5)定义大立方体样式:绝对位置、长、宽、透明度、过度效果

.cube div{    position: absolute;    width: 400px;    height: 400px;    /*指定不透明度。从0.0(完全透明)到1.0(完全不透明)*/    opacity: 0.8;      /*所有属性 过度效果 持续5s*/    transition: all 5s;  }

(6)设置大立方体各个面的旋转方式

.cube .out_front{    transform: rotateY(0deg) translateZ(200px);}.cube .out_back{    transform: translateZ(-200px) rotateY(180deg);}.cube .out_left{    transform: rotateY(90deg) translateZ(200px);}.cube .out_right{    transform: rotateY(-90deg) translateZ(200px);}.cube .out_top{    transform: rotateX(90deg) translateZ(200px);}.cube .out_bottom{    transform: rotateX(-90deg) translateZ(200px);}

(7)定义内层小立方体图片样式

.cube .in_pic{    width: 200px;    height: 200px;}

(8)定义小正方体样式:展示、长、宽、绝对位置等

.cube span{    display: block;    width: 200px;    height: 200px;    position: absolute;    top: 100px;    left: 100px;}

(9)设置小立方体各个面的旋转方式

.cube .in_front{    transform: rotateY(0deg) translateZ(100px);}.cube .in_back{    transform: translateZ(-100px) rotateY(180deg);}.cube .in_left{    transform: rotateY(90deg) translateZ(100px);}.cube .in_right{    transform: rotateY(-90deg) translateZ(100px);}.cube .in_top{    transform: rotateX(90deg) translateZ(100px);}.cube .in_bottom{    transform: rotateX(-90deg) translateZ(100px);}

(10)设置鼠标移入立方体后的样式,外层立方体各个面向外扩张展示

.cube:hover .out_front{    transform: rotateY(0deg) translateZ(400px);}.cube:hover .out_back{    transform: translateZ(-400px) rotateY(180deg);}.cube:hover .out_left{    transform: rotateY(90deg) translateZ(400px);}.cube:hover .out_right{    transform: rotateY(-90deg) translateZ(400px);}.cube:hover .out_top{    transform: rotateX(90deg) translateZ(400px);}.cube:hover .out_bottom{    transform: rotateX(-90deg) translateZ(400px);}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值