JavaScript实现的3D旋转魔方动画效果实例代码
前端  /  管理员 发布于 5年前   348
JS1K是JavaScript编程竞赛――参加竞赛的规则很简单,脚本必须小于1K,竞赛网站开始也只是为了娱乐,却意外地收到了很多优秀的作品。
这是2016年JS1k上传的作品,用几十行代码实现的一个3D旋转魔方:

代码如下:
function z(t, e) { return t? e? t.appendChild(e) : "width:"+t+"px;height:"+t+"px;position:absolute;" : document.createElement("div")}function w() { ++t==360&&(t=0, x=++x%3) for (i in m) 2 == m[i][s[x]] ? m[i][u][a] = r+s[x]+"(" + t + "deg)" : 0; c[u][a] = r+"3d(1,1,1," + t + "deg)", requestAnimationFrame(w)}var a = "transform",p = "background-color:",y = a+"-style:preserve-3d;", u = "style", v = "cssText", B = z(), c = z(), t = x = 0, d, e, f, g, h, k, l, m = [], n, i, r="rotate", s = ["X","Y","Z"];B[u][v] = "perspective:900px;"+z(600)+p+"#666";c[u][v] = y + z(240) +"top:30%;left:30%", z(B, c), z(window.b, B);for (l = 27; l--; z(c, f)) { f = z(), f[u][v] = y + z(240), f.X = g = l % 3, f.Y = h = (l - g) % 9 / 3, f.Z = k = ~~(l / 9), e = z(), e[u][v] = y + z(80) +a+":translate3d(" + 80 * g + "px," + 80 * h + "px," + 80 * (k-1) + "px)"; for (n = 6; n--; z(e, d)) d = z(), d[u][v] = y + z(72) + "border-radius:9px;border:4px solid #000;opacity:0.9;"+a+":"+r+"X(" + (4 > n ? 90 * n : 0) + "deg)"+r+"Y(" + (4 > n ? 0 : 4 == n ? -90 : 90) + "deg)translateZ(40px);"+p+ (0==n&&2==k?"#05C":1==n&&0==h?"#FD0": 2==n&&0==k?"#0A6":3==n&&2==h?"#FFF":4==n&&0==g?"#F60":5==n&&2==g?"#C24":"#000"); z(f, e), m.push(f)}w();知识点扩展
JS如何实现旋转的魔方,浏览器从其他标签页回来依然匀速旋转?
Document frontbackleftrighttopbottom您可能感兴趣的文章:
- 原生javascript+css3编写的3D魔方动画旋扭特效
Top
- 相关文章
- 使用 Alpine.js 排序插件对元素进行排序(0个评论)
- 在js中使用jszip + file-saver实现批量下载OSS文件功能示例(0个评论)
- 在vue中实现父页面按钮显示子组件中的el-dialog效果(0个评论)
- 使用mock-server实现模拟接口对接流程步骤(0个评论)
- vue项目打包程序实现把项目打包成一个exe可执行程序(0个评论)
- 近期文章
- opencode AI智能体自主规划开发游戏:王者荣耀模拟战游戏初体验!英雄角色开发中...(0个评论)
- opencode AI智能体自主规划开发游戏:王者荣耀模拟战游戏初体验!(0个评论)
- opencode + Oh-my-openagent,我的第一个免费的ai编程智能体管家:Sisyphus(0个评论)
- Google AI Studio升级全栈 vibe coding体验,可直接构建带登录和数据库的应用(0个评论)
- Apifox桌面端被曝遭供应链投毒:CDN 脚本被篡改,窃取 SSH 密钥与 Git 凭证(0个评论)
- 在go语言中实现字符串可逆性压缩及解压缩功能(0个评论)
- 使用go + gin + jwt + qrcode实现网站生成登录二维码在app中扫码登录功能(0个评论)
- 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
- 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
- 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
- 近期评论
test1 在
opencode + Oh-my-openagent,我的第一个免费的ai编程智能体管家:Sisyphus中评论 test..122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..Zita 在
Google AI Studio升级全栈 vibe coding体验,可直接构建带登录和数据库的应用中评论 111222..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号
![]()