canvas教程

Particles.js基于Canvas画布创建粒子原子颗粒效果

字号+ 作者:H5之家 来源:H5之家 2017-06-29 15:00 我要评论( )

Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状、旋转、分布、颜色等属性,还可以动态添加粒子,效果非常炫酷,能和鼠标互动

Particles.js基于Canvas画布创建粒子原子颗粒效果

问说网 · 发布于 2015-10-09 · 字数11399 · 浏览 4141 · 评论 0

Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状、旋转、分布、颜色等属性,还可以动态添加粒子,效果非常炫酷,能和鼠标互动吸附或者是躲避鼠标指针。

Particles.js基于Canvas画布创建粒子原子颗粒效果

使用方法

1、该粒子动画库插件使用方法非常简单,首先要在页面中引入particles.js文件。

<script src="js/particles.js"></script>

2、在页面中使用一个div来作为放置粒子的容器。

<div></div>

3、通过particlesJS.load()方法加载配置文件

particlesJS.load('particles-js', 'assets/particles.json', function() { console.log('callback - particles.js config loaded'); });

4、编写particles.json配置文件

{ "particles": { "number": { "value": 80, "density": { "enable": true, "value_area": 800 } }, "color": { "value": "#ffffff" }, "shape": { "type": "circle", "stroke": { "width": 0, "color": "#000000" }, "polygon": { "nb_sides": 5 }, "image": { "src": "img/github.svg", "width": 100, "height": 100 } }, "opacity": { "value": 0.5, "random": false, "anim": { "enable": false, "speed": 1, "opacity_min": 0.1, "sync": false } }, "size": { "value": 10, "random": true, "anim": { "enable": false, "speed": 80, "size_min": 0.1, "sync": false } }, "line_linked": { "enable": true, "distance": 300, "color": "#ffffff", "opacity": 0.4, "width": 2 }, "move": { "enable": true, "speed": 12, "direction": "none", "random": false, "straight": false, "out_mode": "out", "bounce": false, "attract": { "enable": false, "rotateX": 600, "rotateY": 1200 } } }, "interactivity": { "detect_on": "canvas", "events": { "onhover": { "enable": false, "mode": "repulse" }, "onclick": { "enable": true, "mode": "push" }, "resize": true }, "modes": { "grab": { "distance": 800, "line_linked": { "opacity": 1 } }, "bubble": { "distance": 800, "size": 80, "duration": 2, "opacity": 0.8, "speed": 3 }, "repulse": { "distance": 400, "duration": 0.4 }, "push": { "particles_nb": 4 }, "remove": { "particles_nb": 2 } } }, "retina_detect": true } 自定义参数

key option type / notes example

particles.number.value number 40

particles.number.density.enable boolean true / false

particles.number.density.value_area number 800

particles.color.value HEX (string)
RGB (object)
HSL (object)
array selection (HEX)
random (string) "#b61924"
{r:182, g:25, b:36}
{h:356, s:76, l:41}
["#b61924", "#333333", "999999"]
"random"

particles.number.density.value_area number 800

particles.shape.type string
array selection "circle"
"edge"
"triangle"
"polygon"
"star"
"image"
["circle", "triangle", "image"]

particles.shape.stroke.width number 2

particles.shape.stroke.color HEX (string) "#222222"

particles.shape.polygon.nb_slides number 5

particles.shape.image.src path link
svg / png / gif / jpg "assets/img/yop.svg"
"http://mywebsite.com/assets/img/yop.png"

particles.shape.image.width number
(for aspect ratio) 100

particles.shape.image.height number
(for aspect ratio) 100

particles.opacity.value number (0 to 1) 0.75

particles.opacity.random boolean true / false

particles.opacity.anim.enable boolean true / false

particles.opacity.anim.speed number 3

particles.opacity.anim.opacity_min number (0 to 1) 0.25

particles.opacity.anim.sync boolean true / false

particles.size.value number 20

particles.size.random boolean true / false

particles.size.anim.enable boolean true / false

particles.size.anim.speed number 3

particles.size.anim.size_min number 0.25

particles.size.anim.sync boolean true / false

particles.line_linked.enable boolean true / false

particles.line_linked.distance number 150

particles.line_linked.color HEX (string) #ffffff

particles.line_linked.opacity number (0 to 1) 0.5

particles.line_linked.width number 1.5

particles.move.enable boolean true / false

particles.move.speed number 4

particles.move.direction string "none"
"top"
"top-right"
"right"
"bottom-right"
"bottom"
"bottom-left"
"left"
"top-left"

particles.move.random boolean true / false

particles.move.straight boolean true / false

particles.move.out_mode string
(out of canvas) "out"
"bounce"

particles.move.bounce boolean
(between particles) true / false

particles.move.attract.enable boolean true / false

particles.move.attract.rotateX number 3000

particles.move.attract.rotateY number 1500

interactivity.detect_on string "canvas", "window"

interactivity.events.onhover.enable boolean true / false

interactivity.events.onhover.mode string
array selection "grab"
"bubble"
"repulse"
["grab", "bubble"]

interactivity.events.onclick.enable boolean true / false

interactivity.events.onclick.mode string
array selection "push"
"remove"
"bubble"
"repulse"
["push", "repulse"]

interactivity.events.resize boolean true / false

interactivity.events.modes.grab.distance number 100

interactivity.events.modes.grab.line_linked.opacity number (0 to 1) 0.75

interactivity.events.modes.bubble.distance number 100

interactivity.events.modes.bubble.size number 40

interactivity.events.modes.bubble.duration number
(second) 0.4

interactivity.events.modes.repulse.distance number 200

interactivity.events.modes.repulse.duration number
(second) 1.2

interactivity.events.modes.push.particles_nb number 4

interactivity.events.modes.push.particles_nb number 4

retina_detect boolean true / false

相关链接

本文系作者 问说网 授权问说网发表,并经问说网编辑,转载请注明出处和 本文链接

预览示例 下载附件

喜欢 0 收藏 0 分享

相关文章

发布评论

为您推荐

相对C/C++ 而言,我们所用的JavaScript 在内存这一方面的处理已经让我们在开发中更注重业务逻辑的编写。但是随着业务的不断复杂化,单页面应用、移动HT…

浏览 1251 · 评论 0

分享5个实用WebAPP界面设计工具

我们都知道移动HTML5带UI的开发框架层出不穷,常见的有Sencha Touch、jQuery Mobile前者效果较好,收费学习成本高;后者效果一般,但兼容…

浏览 2229 · 评论 0

NEJ简洁美观真正的跨平台web前端开发框架

NEJ全称Nice Easy Javascript,由网易前端组工程师们发起创建的简洁,美观,真正的跨平台Web前端开发框架;她遵循的原则是 自由定制、小巧灵活…

浏览 1418 · 评论 0

FlyJSONP轻量级的跨域AJAX请求插件

FlyJSONP是一个JavaScript库,用于实现跨域GET和POST请求服务,支持JSONP,并取得一个JSON格式的数据响应,这个Library具有易于…

浏览 1035 · 评论 0

Response JS创建高性能的支持移动设备的网站

Response JS 是一个轻量级的 jQuery 插件,用来创建高性能的支持移动设备的网站。它提供了一套语法用来根据不同的设备环境动态替换HTML代码。例如…

浏览 963 · 评论 0

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 基于HTML5 Canvas粒子效果文字动画特效

    基于HTML5 Canvas粒子效果文字动画特效

    2017-06-23 08:02

网友点评