Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
阿里云优惠券
卓越的云计算技术和服务提供商
腾讯云优惠券
云服务器,云数据库,CDN,域名注册等多种云计算服务
扣子Coze
创建属于你的 AI 应用,AI Agent智能办公平台
豆包AI
字节跳动旗下 AI 智能助手
即梦AI
一站式智能创作平台,即刻造梦
AiPPT
全智能AI一键生成 PPT
堆友AI
零门槛,多风格AI绘画免费生成,电商海报设计神器
蜂小推
不扣量的项目推广平台
SpeedAI
一键去重、降AIGC率、数据可视化、论文写作

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
网站收录 / 问题反馈

sprite.js

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:http://spritejs.org
GitHub:https://github.com/spritejs/spritejs
网站描述:由360奇舞团开源的跨终端 canvas 绘图框架
访问官网
GitHub

sprite.js 是跨平台的2D绘图对象模型库,它能够支持web、node、桌面应用和微信小程序的图形绘制和实现各种动画效果。sprite.js基于 canvas 快速绘制结构化 UI、动画和交互效果,并发布到任何拥有canvas环境的平台上(比如浏览器、小程序和node)。  


快速开始

一个应用可以有多个场景,每个场景可以有多个图层,每个图层上可以有多个元素  
// 导出你要用到的对象
const { Scene, Sprite, Label } = window.spritejs;
// 初始化场景scene,它不是canvas,只是一个用来包裹canvas的div元素
this.scene = new Scene('#myCanvas', {
  viewport: ['auto', 'auto'],
  resolution: [750, 1008],
  stickMode: 'top'
});
// 创建背景图层layer,这个就是真正意义上的canvas了
this.bglayer = this.scene.layer('bg'); // bg 只是图层的别名,可以理解为canvas的id


下面以精灵Sprite为例

// 1.创建Sprite
const s = new Sprite('http://xxx.com/a.png');
// 2.设置属性,精灵的属性等同于css3的样式,很好理解
s.attr({
  anchor: [0.5, 0.5], // 锚点,你可以理解为css3中的transform-origin
  pos: [0, 0], // 位置,最大为 750 * 1008 也就是场景的大小
  size: [100, 100], // 大小,默认为图片的宽高
  scale: [0.9, 0.9] // 缩放,默认 1 1
});
// 3.添加到图层
this.bglayer.append(s);
// 4.创建动画
s.animate([
  { x: 100, y: 100 }, // 先运动到 100,100 位置
  { scale: [0.2, 0.2] } // 再缩小到 0.2 0.2
], {
  duration: 2000, // 时间2s
  delay: 1000, // 延时1s后执行
  fill: 'both' // 保留在最后状态
})

如何创建连续的过程动画?

// 先移动到 100,100
await s.animate([
  { x: 100, y: 100 }
], {
  duration: 1000,
  fill: 'both'
}).finished;
// 停顿2s后,缩小到 0.2 0.2
await s.animate([
  { scale: [0.2, 0.2] }
], {
  duration: 1000,
  delay: 2000,
  fill: 'both'
}).finished;

预加载

大家都知道,如果在canvas中直接使用网络图片,会因无法读取到图片大小而绘制失败。一般会先进行预加载,spritejs帮我们封装了预加载方法。  
// 预加载
await this.scenne.preload(
  { id: 'bg', src: 'http://xxx.com/bg.png' },
  { id: 's', src: 'http://xxx.com/s.jpeg' },
)
// 使用
const s = new Sprite('s'); // 这个时候可以使用id来取到图片

总结

  • 像操作dom对象一样操作画布上的图形元素
  • 通过智能缓存大大提升渲染性能
  • 支持多图层处理图形、文本、图像渲染
  • 支持DOM事件代理、自定义事件派发
  • 使用ES6+语法和面向对象编程
  • 结构化对象树,对d3引擎友好,能够无缝使用
  • 支持服务器端渲染和小程序

仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/2246

更多»
热门资源
ECharts
一个使用 JavaScript 实现的开源可视化库
官网
GitHub
SVG.js
包括各种形状、线条、文本、路径等元素
官网
GitHub
d3.js
基于HTML 和 SVG 的 JavaScript 可视化库
官网
GitHub
incubator-echarts
百度团队开发的一款商业级数据图表
官网
GitHub
g2
一套基于可视化编码的图形语法
官网
GitHub
Chartist.js
JavaScript响应式图表库
官网
GitHub
MetricsGraphics.js
一个基于 D3 的简洁的数据图表优化
官网
GitHub
plotly.js
基于d3.js 和stack.gl开源的 JavaScript 图表库
官网
GitHub
js-sequence-diagrams
一款基于 Javascript 的Web绘制时序图的工具
官网
GitHub
C3.js
基于D3.js开发的JavaScript库
官网
GitHub
crossfilter
一个数据计算模型,能够很好地结合DC.JS进行数据解析绘图
官网
GitHub
Processing.js
擅长创建2D和3D图象,可视化数据套件,音频,视频等
官网
GitHub
类似于sprite.js的资源
VisuAlgo
数据结构和算法动态可视化
官网
WebPlotDigitizer
基于HTML5的在线工具从绘图图像中提取数字数据
官网
GitHub
zdog
扁平,圆形,设计师友好的伪3D引擎
官网
GitHub
Tabulator
JavaScript 中的交互式图表和数据网格
官网
GitHub
Sparky
一款免费的 JavaScript 波形图库
官网
GitHub
flubber
平滑形状动画的工具
点击进入
GitHub
Observable Plot
用于探索性数据可视化的 JavaScript 库
官网
Cubism.js
用于可视化时间线的d3插件
官网
GitHub
目录

手机扫一扫预览

》
分享组件加载中...
首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。