js实现炫酷的3d动画_滴滴官网首页3d地球动画反译实现

最近有个页面的效果需求,要实现一个 3D 地球的动画效果,在寻找效果参考时看到 didiGlobel 官网的效果很好,所以就想把这个效果拿下来参考一下。以下就是一个反译+学习的过程记录。

写在前面

访问 官方地址 可以看到下面的 3D 地球效果

54e6a2c78da96bd2712068bbe5840ec2.png

image.png

获取效果资源

首先查看一下官网实现的源码

c6f2ab57dda053a61b60ea31e41686a7.png

image.png

发现都是经过混淆压缩过的,但从中可以分析出采用的技术栈如下:

  • React
  • Threejs
  • Shader

可以看到文件的可读性很差,有4个js 文件,首先是要找到哪个文件是用来制作这个地球的。

我们回到 Elements 标签页,找到对应的 html 源码

1ce96c500f4c217760b571e58296bcdf.png

image.png

从上面可以看到,地球是渲染到 canvas 中,parent id 是 container,那么我们只要在混淆的源码中,找到渲染方法就能确定哪个 js 是主要制作地球的,这样就能再进行分析。

经过关键词查询

451578309f9fd2945e1b71838e60725c.png

image.png

找到了对应的js,但由于这js 文件比较大,并且源码可读性太差,就需要借助一些工具来帮我们去反译。

这里用的是 jsNice 反译之后的效果还是可以的,有一定可读性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值