zoukankan      html  css  js  c++  java
  • Particles.js基于Canvas画布创建粒子原子颗粒效果

    文章目录

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

    Particles.js基于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://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

    相关链接

    本文系作者 问说网 授权问说网发表,并经问说网编辑,转载请注明出处和 本文链接
    本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
    转载请注明:文章转载自:问说网 » Particles.js基于Canvas画布创建粒子原子颗粒效果
    本文标题:Particles.js基于Canvas画布创建粒子原子颗粒效果
    本文地址:http://www.uedsc.com/particles-js.html
    转自:http://www.uedsc.com/particles-js.html
  • 相关阅读:
    尝试Spring Data Jpa--告别CRUD
    SSM框架开发web项目系列(七) SpringMVC请求接收
    SSM框架开发web项目系列(六) SpringMVC入门
    SSM框架开发web项目系列(五) Spring集成MyBatis
    SSM框架开发web项目系列(四) MyBatis之快速掌握动态SQL
    SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射
    SSM框架开发web项目系列(二) MyBatis真正的力量
    从MVC到Ajax再到前后端分离的思考
    SSM框架开发web项目系列(一) 环境搭建篇
    antd4.0 定制主题
  • 原文地址:https://www.cnblogs.com/imsoft/p/5225024.html
Copyright © 2011-2022 走看看