正方体翻滚Loading 2.0

说在前面

前面实现了一个 正方体翻滚Loading 1.0 版本

看久了觉得原地翻滚有点没意思了,不如让它左右滚动起来

效果展示

codepen

在线体验codepen.io/yongtaozhen...

码上掘金

在线体验code.juejin.cn/pen/7639379...

关键改动代码

1.容器变宽,给横向运动留空间

2.0 要让方块左右跑,容器宽度肯定得比 1.0 大。

css 复制代码
.loader {
  position: relative;
  width: 300px;
  height: 218px;
  perspective: 880px;
  isolation: isolate;
}

.cube {
  position: absolute;
  left: 50%;
  bottom: 64px;
  width: 72px;
  height: 72px;
  margin-left: -36px;
  transform-style: preserve-3d;
  transform: translateX(-100px) translateY(0px) rotateX(-8deg)
    rotateY(8deg) rotateZ(0deg);
}

这里的关键是 translateX(-100px) 作为起点,让方块从左侧出发。

2.一个关键帧写完整"去程 + 回程"

0%~50% 作为去程,50%~100% 作为回程。

css 复制代码
@keyframes roll-commute {
  0% {
    transform: translateX(-100px) translateY(0px) rotateX(-8deg)
      rotateY(8deg) rotateZ(0deg);
  }
  25% {
    transform: translateX(0px) translateY(0px) rotateX(-8deg)
      rotateY(8deg) rotateZ(180deg);
  }
  50% {
    transform: translateX(100px) translateY(0px) rotateX(-8deg)
      rotateY(8deg) rotateZ(360deg);
  }
  75% {
    transform: translateX(0px) translateY(0px) rotateX(-8deg)
      rotateY(8deg) rotateZ(180deg);
  }
  100% {
    transform: translateX(-100px) translateY(0px) rotateX(-8deg)
      rotateY(8deg) rotateZ(0deg);
  }
}

6.25% 一档的细分节点(每次抬起是 translateY(-14px)),这样滚动不是"滑行",而是明显的"翻面跳跃感"。

3.阴影跟着走

css 复制代码
@keyframes shadow-sync {
  0% { transform: translateX(-100px) scaleX(0.9); opacity: 0.5; }
  25% { transform: translateX(0px) scaleX(0.9); opacity: 0.5; }
  50% { transform: translateX(100px) scaleX(0.9); opacity: 0.5; }
  75% { transform: translateX(0px) scaleX(0.9); opacity: 0.5; }
  100% { transform: translateX(-100px) scaleX(0.9); opacity: 0.5; }
}

然后再叠一层 contact-shadow(接触阴影),在抬起节点压低透明度,就会有"离地-落地"的重量反馈。

源码地址

gitee

源码地址gitee.com/zheng_yongt...

github

源码地址github.com/yongtaozhen...

🌟 觉得有帮助的可以点个 star~

🖊 有什么问题或错误可以指出,欢迎 pr~

📬 有什么想要实现的功能或想法可以联系我~

公众号

关注公众号『 前端也能这么有趣 』,获取更多有趣内容。 发送 加群 还可以加入群聊,一起来学习(摸鱼)吧~

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

相关推荐
wuhen_n2 小时前
LangChain Memory 详解:实现 AI 连续对话不丢失上下文
前端·langchain·ai编程
wuhen_n3 小时前
LangChain Function Call 实战:让 AI 调用自定义工具
前端·langchain·ai编程
DyLatte3 小时前
很多人把坚持,误以为成长
前端·后端·程序员
yingyima3 小时前
凌晨3点的警报声:定时任务监控与告警的最佳实践
前端
zach3 小时前
React中的兄弟通讯之发布订阅模式
前端·react.js
书中枫叶3 小时前
我用 Vue3 写了一个 Chrome 步骤录制插件:自动截图、本地存储、一键导出教程
前端·vue.js
达达尼昂3 小时前
AI Native 工程实践 : agent 自动化测试
前端·后端·架构
2501_940041743 小时前
前端工程化命题,覆盖性能/架构/交互
前端·交互
夜焱辰3 小时前
我花了3个月,把一个终端 AI Agent 搬进了浏览器——踩坑全记录
前端·agent
阿黎梨梨3 小时前
英伟达API + OpenAI SDK 实战:环境、密钥、异步,全流程拆解
前端