3D 旋转立方体效果(摇塞子)

效果图

.vue

typescript 复制代码
<template>
  <view class="container flex-center">
    <view class="cube">
      <view v-for="(item,index) in 6" :key="index"
            class="cube-item flex-center">
        {{ item }}
      </view>
    </view>
  </view>
</template>

<script setup lang='ts'>

</script>

<style lang='scss' scoped>
.container{
  padding-top: 20vh;
}

@keyframes rotate-cube {
  0%{
    // 1
    transform: rotateX(0deg) rotateY(0deg);
  }

  16.65%{
    // 3
    transform: rotateX(0deg) rotateY(90deg);
  }

  33.3%{
    // 5
    transform: rotateX(90deg) rotateY(0deg);
  }

  49.95%{
    // 6
    transform: rotateX(180deg) rotateY(0deg);
  }

  66.6%{
    // 2
    transform: rotateX(0deg) rotateY(-90deg);
  }

  83.25%{
    // 4
    transform:rotateX(-90deg) rotateY(0deg);
  }

  100%{
    // 1
    transform: rotateX(0deg) rotateY(0deg);
  }
}

.cube{
  --area:400rpx;
  --half:calc(var(--area) / 2);

  width: var(--area);
  height: var(--area);
  font-size: 60rpx;
  transform-origin: var(--half) var(--half) 0;
  transform-style: preserve-3d;
  animation: rotate-cube 7s ease-in-out infinite;
  will-change: transform;

  &-item{
    position: absolute;
    width: var(--area);
    height: var(--area);
    opacity: .8;

    &:nth-child(1){
      background: red;
      transform: rotateY(0deg) translateZ(var(--half));
    }

    &:nth-child(2){
      background: orange;
      transform: rotateY(90deg) translateZ(var(--half));
    }

    &:nth-child(3){
      background: yellow;
      transform: rotateY(-90deg) translateZ(var(--half));
    }

    &:nth-child(4){
      background: green;
      transform: rotateX(90deg) translateZ(var(--half));
    }

    &:nth-child(5){
      background: cyan;
      transform: rotateX(-90deg) translateZ(var(--half));
    }

    &:nth-child(6){
      background: blue;
      transform: rotateY(180deg) translateZ(var(--half)) rotate(180deg);
    }
  }
}
</style>

遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。

相关推荐
ModyQyW26 分钟前
vite-plugin-uni-manifest 更新了什么
前端·typescript·uni-app
Asize2 小时前
AI 协作开发新范式:我用 SDD 做了个排版 npm 包
前端·人工智能
kyriewen3 小时前
我把今年流传的前端 AI 面试题整理了一遍——4 类场景题+回答框架(附速查表)
前端·面试·程序员
计算机魔术师3 小时前
国产多模态模型正面硬刚Opus旗舰:差距从30%缩到3%
前端
风骏时光牛马4 小时前
程序员进阶:深度思考,解锁职场成长的底层逻辑
前端
IT_陈寒4 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
爱丶不疚4 小时前
Eval: Agent 说的 Eval 是什么?从单测、TDD 到 Sentry 聊起
前端·ai编程·vibecoding
求道於盲4 小时前
python中的类型标注
前端
计算机魔术师4 小时前
从硅谷测试到全球铺开,ChatGPT广告的10亿美元秘密
前端
专业抄代码选手6 小时前
08|Fiber 上的 `useState`:状态终于属于具体组件
前端·javascript·react.js