3D效果轮播图

3D效果轮播图

代码

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      perspective: 800px;
      transform-style: preserve-3d;
    }

    .box {
      display: flex;
      width: 250px;
      height: 250px;
      margin: 150px auto;
      /*   overflow: hidden; 溢出隐藏和3D变化会导致子元素溢出父元素盒子的问题相冲突,会导致不同图片3D效果切换无法实现*/
      position: relative;
      transform-style: preserve-3d;
      transition: all 0.5s;
    }

    img {
      display: block;
      width: 250px;
      height: 250px;
      position: absolute;
      top: 0;
      left: 0;
      /* position: absolute; */
    }

    @keyframes ro {
      0% {
        transform: rotateX(90deg);
      }

      10% {
        transform: rotateY(90deg);
      }

      20% {
        transform: rotateY(90deg);
      }

      30% {
        transform: rotateZ(90deg);
      }

      40% {
        transform: rotateZ(90deg);
      }

      50% {
        transform: rotateY(90deg);
      }

      60% {
        transform: rotateX(90deg);
      }

      70% {
        transform: rotateX(180deg);
      }

      80% {
        transform: rotateZ(-90deg);
      }

      90% {
        transform: rotateY(-90deg);
      }

      100% {
        transform: rotateY(90deg);
      }
    }

    @keyframes fd {
      50% {
        transform: scale3d(1.5, 1.5, 1.5)
      }
      100% {
        transform: scale3d(1, 1, 1);
      }
    }

    .box .front {
      transform: translateZ(125px);
    }

    .box .back {
      transform: translateZ(-125px) rotateX(180deg);
    }

    .box .up {
      transform: translateY(-125px) rotateX(90deg);
    }

    .box .down {
      transform: translateY(125px) rotateX(-90deg);
    }

    .box .left {
      transform: translateX(-125px) rotateY(-90deg);
    }

    .box .right {
      transform: translate(125px) rotateY(90deg);
    }
    /*  .box .back {
      transform: translateZ(1250px) rotateX(180deg);
    } */
    
    .box {
      animation: ro 9s linear infinite alternate forwards/* , fd 9s 0.2s linear backwards */;
    }
    
    .box:hover {
      animation-play-state: paused;
    }
  </style>
</head>
<body>
  <div class="box">
    <img src="./image/front.jpg" alt="" class="front">
    <img src="./image/back.jpg" alt="" class="back">
    <img src="./image/up.jpg" alt="" class="up">
    <img src="./image/down.jpg" alt="" class="down">
    <img src="./image/left.jpg" alt="" class="left">
    <img src="./image/right.jpg" alt="" class="right">
    </img>
</body>
</html>

效果图

相关推荐
图扑软件4 小时前
50ms 级实时数字孪生|汽车先进制造车间工艺流程
3d·数据采集·webgl·数字孪生·可视化·opc ua·汽车制造
七牛开发者4 小时前
HTML is the new Markdown:来自 Claude Code 团队的实践
前端·人工智能·语言模型·html
@大迁世界5 小时前
43.HTML 事件处理和 React 事件处理有什么区别?
前端·javascript·react.js·html·ecmascript
ZC跨境爬虫6 小时前
跟着 MDN 学 HTML day_38:(DocumentFragment 文档片段接口详解)
前端·javascript·ui·html·音视频
@大迁世界7 小时前
41.ShadCN 是什么?它如何和 Tailwind CSS 集成,从而更容易构建可访问且可自定义的 React 组件?
前端·javascript·css·react.js·前端框架
容智信息10 小时前
AI Agent(智能体)的输出格式应该从 Markdown 转向 HTML吗?
前端·人工智能·rust·编辑器·html·prompt
梨子同志10 小时前
CSS Grid
前端·css
山科智能信息处理实验室12 小时前
告别“补点”时代:PaCo 用参数化补全重写多边形重建规则
深度学习·3d
ZC跨境爬虫12 小时前
跟着 MDN 学 HTML day_40:(DOMImplementation 接口完全解析)
前端·ui·html·媒体
ZC跨境爬虫13 小时前
跟着 MDN 学 HTML day_39:(DOMException 异常接口完全解析)
前端·javascript·html·媒体