纯css实现3D旋转相册动画

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>3D相册</title>
    <style>
      @charset "utf-8";
      * {
        margin: 0;
        padding: 0;
      }
      body {
        max-width: 100%;
        min-width: 100%;
        height: 100%;
        background-size: cover;
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-size: 100% 100%;
        position: absolute;
        margin-left: auto;
        margin-right: auto;
      }
      li {
        list-style: none;
      }
      .box {
        width: 200px;
        height: 200px;
        background-size: cover;
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-size: 100% 100%;
        position: absolute;
        margin-left: 42%;
        margin-top: 22%;
        -webkit-transform-style: preserve-3d;
        -webkit-transform: rotateX(13deg);
        -webkit-animation: move 5s linear infinite;
      }
      .minbox {
        width: 100px;
        height: 100px;
        position: absolute;
        left: 50px;
        top: 30px;
        -webkit-transform-style: preserve-3d;
      }
      .minbox li {
        width: 100px;
        height: 100px;
        position: absolute;
        left: 0;
        top: 0;
      }
      .minbox li:nth-child(1) {
        background: url(../img/01.png) no-repeat 0 0;
        -webkit-transform: translateZ(50px);
      }
      .minbox li:nth-child(2) {
        background: url(../img/02.png) no-repeat 0 0;
        -webkit-transform: rotateX(180deg) translateZ(50px);
      }
      .minbox li:nth-child(3) {
        background: url(../img/03.png) no-repeat 0 0;
        -webkit-transform: rotateX(-90deg) translateZ(50px);
      }
      .minbox li:nth-child(4) {
        background: url(../img/04.png) no-repeat 0 0;
        -webkit-transform: rotateX(90deg) translateZ(50px);
      }
      .minbox li:nth-child(5) {
        background: url(../img/05.png) no-repeat 0 0;
        -webkit-transform: rotateY(-90deg) translateZ(50px);
      }
      .minbox li:nth-child(6) {
        background: url(../img/06.png) no-repeat 0 0;
        -webkit-transform: rotateY(90deg) translateZ(50px);
      }
      .maxbox li:nth-child(1) {
        background: url(../img/1.png) no-repeat 0 0;
        -webkit-transform: translateZ(50px);
      }
      .maxbox li:nth-child(2) {
        background: url(../img/2.png) no-repeat 0 0;
        -webkit-transform: translateZ(50px);
      }
      .maxbox li:nth-child(3) {
        background: url(../img/3.png) no-repeat 0 0;
        -webkit-transform: rotateX(-90deg) translateZ(50px);
      }
      .maxbox li:nth-child(4) {
        background: url(../img/4.png) no-repeat 0 0;
        -webkit-transform: rotateX(90deg) translateZ(50px);
      }
      .maxbox li:nth-child(5) {
        background: url(../img/5.png) no-repeat 0 0;
        -webkit-transform: rotateY(-90deg) translateZ(50px);
      }
      .maxbox li:nth-child(6) {
        background: url(../img/6.png) no-repeat 0 0;
        -webkit-transform: rotateY(90deg) translateZ(50px);
      }
      .maxbox {
        width: 800px;
        height: 400px;
        position: absolute;
        left: 0;
        top: -20px;
        -webkit-transform-style: preserve-3d;
      }
      .maxbox li {
        width: 200px;
        height: 200px;
        background: #fff;
        border: 1px solid #ccc;
        position: absolute;
        left: 0;
        top: 0;
        opacity: 0.2;
        -webkit-transition: all 1s ease;
      }
      .maxbox li:nth-child(1) {
        -webkit-transform: translateZ(100px);
      }
      .maxbox li:nth-child(2) {
        -webkit-transform: rotateX(180deg) translateZ(100px);
      }
      .maxbox li:nth-child(3) {
        -webkit-transform: rotateX(-90deg) translateZ(100px);
      }
      .maxbox li:nth-child(4) {
        -webkit-transform: rotateX(90deg) translateZ(100px);
      }
      .maxbox li:nth-child(5) {
        -webkit-transform: rotateY(-90deg) translateZ(100px);
      }
      .maxbox li:nth-child(6) {
        -webkit-transform: rotateY(90deg) translateZ(100px);
      }
      .box:hover ol li:nth-child(1) {
        -webkit-transform: translateZ(300px);
        width: 400px;
        height: 400px;
        opacity: 0.8;
        left: -100px;
        top: -100px;
      }
      .box:hover ol li:nth-child(2) {
        -webkit-transform: rotateX(180deg) translateZ(300px);
        width: 400px;
        height: 400px;
        opacity: 0.8;
        left: -100px;
        top: -100px;
      }
      .box:hover ol li:nth-child(3) {
        -webkit-transform: rotateX(-90deg) translateZ(300px);
        width: 400px;
        height: 400px;
        opacity: 0.8;
        left: -100px;
        top: -100px;
      }
      .box:hover ol li:nth-child(4) {
        -webkit-transform: rotateX(90deg) translateZ(300px);
        width: 400px;
        height: 400px;
        opacity: 0.8;
        left: -100px;
        top: -100px;
      }
      .box:hover ol li:nth-child(5) {
        -webkit-transform: rotateY(-90deg) translateZ(300px);
        width: 400px;
        height: 400px;
        opacity: 0.8;
        left: -100px;
        top: -100px;
      }
      .box:hover ol li:nth-child(6) {
        -webkit-transform: rotateY(90deg) translateZ(300px);
        width: 400px;
        height: 400px;
        opacity: 0.8;
        left: -100px;
        top: -100px;
      }
      @keyframes move {
        0% {
          -webkit-transform: rotateX(13deg) rotateY(0deg);
        }
        100% {
          -webkit-transform: rotateX(13deg) rotateY(360deg);
        }
      }
    </style>
  </head>

  <body>
    <div class="box">
      <ul class="minbox">
        <li><img src="3D相册图片/01.jpg" width="100" height="100" /></li>
        <li><img src="3D相册图片/02.jpg" width="100" height="100" /></li>
        <li><img src="3D相册图片/03.jpg" width="100" height="100" /></li>
        <li><img src="3D相册图片/04.jpg" width="100" height="100" /></li>
        <li><img src="3D相册图片/05.jpg" width="100" height="100" /></li>
        <li><img src="3D相册图片/06.jpg" width="100" height="100" /></li>
      </ul>
      <ol class="maxbox">
        <li><img src="3D相册图片/1.jpg" width="400" height="400" /></li>
        <li><img src="3D相册图片/2.jpg" width="400" height="400" /></li>
        <li><img src="3D相册图片/3.jpg" width="400" height="400" /></li>
        <li><img src="3D相册图片/4.jpg" width="400" height="400" /></li>
        <li><img src="3D相册图片/5.jpg" width="400" height="400" /></li>
        <li><img src="3D相册图片/6.jpg" width="400" height="400" /></li>
      </ol>
    </div>
  </body>
</html>

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现炫酷抖音女友3D旋转相册特效,需要掌握CSS3的一些基本动画和转换属性。首先需要准备照片,然后将照片放在一个容器中,设置容器的宽度、高度、视距、景深。接下来,需要使用CSS3旋转属性将照片进行旋转,同时使用缩放属性进行3D效果的实现。最后再使用CSS3动画属性和过渡属性,使照片在旋转的过程中呈现出平滑、连贯的效果。具体实现步骤和样式代码如下所示: 1. 创建一个容器,设置容器的宽度、高度、视距和景深。 ``` .container { width: 600px; height: 400px; perspective: 1000px; -webkit-perspective: 1000px; perspective-origin: 50% 50%; -webkit-perspective-origin: 50% 50%; } ``` 2. 在容器中添加多个照片,将它们定位在正中心,并设置它们的宽度和高度。 ``` .photo { position: absolute; top: 50%; left: 50%; margin-top: -150px; margin-left: -200px; width: 400px; height: 300px; background-size: cover; background-position: center center; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; } ``` 3. 使用CSS3旋转属性,使照片在Z轴上进行旋转,并使用缩放属性使照片产生3D效果。 ``` .photo:nth-child(1) { transform: rotateY(0deg) translateZ(250px) scale(0.8); -webkit-transform: rotateY(0deg) translateZ(250px) scale(0.8); } .photo:nth-child(2) { transform: rotateY(60deg) translateZ(250px) scale(0.8); -webkit-transform: rotateY(60deg) translateZ(250px) scale(0.8); } .photo:nth-child(3) { transform: rotateY(120deg) translateZ(250px) scale(0.8); -webkit-transform: rotateY(120deg) translateZ(250px) scale(0.8); } .photo:nth-child(4) { transform: rotateY(180deg) translateZ(250px) scale(0.8); -webkit-transform: rotateY(180deg) translateZ(250px) scale(0.8); } .photo:nth-child(5) { transform: rotateY(240deg) translateZ(250px) scale(0.8); -webkit-transform: rotateY(240deg) translateZ(250px) scale(0.8); } .photo:nth-child(6) { transform: rotateY(300deg) translateZ(250px) scale(0.8); -webkit-transform: rotateY(300deg) translateZ(250px) scale(0.8); } ``` 4. 使用CSS3动画属性和过渡属性,使照片具有平滑、连贯的旋转效果。 ``` .photo:hover { animation: rotate 10s infinite linear; -webkit-animation: rotate 10s infinite linear; transition: all 0.5s ease-in-out; -webkit-transition: all 0.5s ease-in-out; } @keyframes rotate { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(360deg); } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotateY(0deg); } 100% { -webkit-transform: rotateY(360deg); } } ``` 这样就可以实现抖音女友3D旋转相册的特效了。通过使用CSS3旋转、缩放、动画和过渡属性,可以轻松实现多种炫酷的效果,为网页添加生动、有趣的视觉体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值