分享

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

 Levy_X 2017-10-12

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

使用方法

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

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

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

<div id='particles-js'></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 }

自定义参数

keyoption type / notesexample
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:///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条评论

    发表

    请遵守用户 评论公约

    类似文章 更多