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

相关推荐
禅思院11 小时前
Vite vs Webpack 深度对比:从启动原理到生产构建,一篇就够了
前端·架构·前端框架
IT_陈寒11 小时前
Vue的响应式真把我坑惨了,原来问题出在这
前端·人工智能·后端
朦胧之1 天前
AI 编程-老项目改造篇
java·前端·后端
swipe1 天前
从 0 到 1 实现大文件上传:分片、秒传、断点续传、暂停、重试与服务端合并
前端·javascript·面试
爱勇宝1 天前
我做了一个只用来搜歌词的小 App
android·前端·后端
甲维斯1 天前
用AI还原《坦克大战》并3D化升级!
前端·人工智能·游戏开发
IT_陈寒1 天前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端
kyriewen1 天前
AI 生成的代码能跑就行?这 5 个坑迟早炸
前端·javascript·ai编程
kisshyshy1 天前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
谷子在生长1 天前
纯血鸿蒙自定义弹窗最佳实践:从「到处复制」到「一行调用」
前端·harmonyos