Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
Trae
字节跳动推出的 AI原生编程工具
我要自学网
免费视频教程,提供全方位软件学习
3387游戏盒子
提供热门折扣手游,助你轻松畅玩各种类型的游戏
fly63工具箱
简单、易用、便捷的在线工具
免费资源下载中心
一站式解决工作学习需求的宝藏网站
堆友AI
零门槛,多风格AI绘画免费生成,电商海报设计神器
LiblibAI
一站式AI内容创作生成平台,原创AI模型分享社区
任推邦
APP推广项目分发和流量变现平台
扣子Coze
职场AI,就用扣子
茅茅虫
茅茅虫AI论文写作助手,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的资源
cal-heatmap
创建日历热点图的 javascript 模块
官网
GitHub
Observable Plot
用于探索性数据可视化的 JavaScript 库
官网
smoothie
是个极小的图表库,专为实时流媒体数据设计的
官网
GitHub
jspaint
基于HTML5的在线画图工具
官网
GitHub
uCharts
基于canvas API开发的适用于所有前端应用的图表库
官网
Flot
纯Javascript实现的基于jQuery的图表插件
官网
GitHub
Frappé Charts
是一个简单,敏感,现代的SVG图表插件,具有零依赖性
官网
GitHub
VexChords
JavaScript和弦图表
官网
GitHub
目录

手机扫一扫预览

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

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