红宝书第四十四讲:基于红宝书的两个动画库Anime.js和three.js介绍


红宝书第四十四讲:基于红宝书的两个动画库Anime.js和three.js介绍 12

资料取自《JavaScript高级程序设计(第5版)》
查看总目录:红宝书学习大纲


一、Anime.js:轻量级动画利器 1

核心特点(来自资料1):

  1. 全能动画支持:可操控CSS样式、DOM属性、SVG路径数据  📦
  2. 极简API设计:通过链式语法控制动画时间轴
  3. 应用场景举例:网页元素淡入/出、物体旋转移动、进度条加载

基础使用步骤

示例代码(假设让方块淡入):

anime({
  targets: '.box',      // 目标元素选择器
  opacity: [0, 1],      // 透明度从0到1
  duration: 1000,       // 动画持续1秒
  easing: 'easeInOutQuad' // 使用贝塞尔缓动函数
});

二、three.js:闯入3D世界的钥匙 23

核心能力(根据资料2):

  1. WebGL抽象层:将复杂的WebGL API简化为易用的对象模型
  2. 跨平台3D渲染:支持桌面与移动端的3D图形生成
  3. 生态丰富:预设几何体、材质库、光照模拟系统 🎮

创建简单3D场景流程

基础代码框架(结合资料6的WebGL上下文):

// 初始化WebGL渲染器
const renderer = new THREE.WebGLRenderer({
  canvas: document.querySelector('#canvas') // 关联Canvas元素
});

const scene = new THREE.Scene(); // 创建场景
const camera = new THREE.PerspectiveCamera(75, width/height, 0.1, 1000);

const geometry = new THREE.BoxGeometry(); // 立方体几何形状
const material = new THREE.MeshPhongMaterial({color: 0x00ff00}); // 材质
const cube = new THREE.Mesh(geometry, material);

scene.add(cube); // 添加立方体到场景
camera.position.z = 5; // 调整摄像机位置

// 动画循环(参考requestAnimationFrame)
function animate() {
  cube.rotation.x += 0.01; // 每帧旋转立方体
  renderer.render(scene, camera);
  requestAnimationFrame(animate);
}
animate(); 

三、Anime.js与three.js关键差异 [对比]
比较维度Anime.jsthree.js
渲染技术依赖DOM或CSS基于WebGL的3D图形管道
使用复杂度简单快捷需理解三维坐标系/材质/光照
典型用途网页交互动画游戏/工业模型/虚拟现实场景
性能重点DOM操作优化GPU计算的吞吐效率

目录:总目录
上篇文章:红宝书第四十三讲:基于资料的数据可视化工具简单介绍:D3.js 与 Canvas绘图
下篇文章:红宝书第四十五讲:状态管理核心工具详解:RxJS & Redux & MobX的奇妙世界

脚注


  1. 《JavaScript高级程序设计(第5版)》说明Anime.js能够控制CSS、DOM、SVG及JavaScript对象动画 ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》指出three.js是主流WebGL库,支持复杂3D动画 ↩︎ ↩︎

  3. 《JavaScript高级程序设计(第5版)》提示three.js底层依赖WebGL上下文管理3D渲染管线 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kovlistudio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值