介绍

canvas-confetti 是一个使用 canvas 的五彩纸屑特效 JS 插件。先看下效果:

使用方式

1.NPM 安装:

npm install --save canvas-confetti

然后通过 const confetti = require('canvas-confetti'); 在项目中使用。

2.从 CDN 导入 HTML 页面中(也可以将 JS 文件下载到本地,体积只有 10 KB 左右大小):

<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.5.1/dist/confetti.browser.min.js" defer></script>

然后直接在 HTML 页面中调用 confetti() 方法即可立即展示特效。

控制发射原点

  • origin.x:Number(默认值:0.5):发射的水平方向原点,0 表示左边缘,1 表示右边缘。
  • origin.y:Number (默认值: 0.5) :发射的垂直方向原点,0 表示上边缘,1 表示下边缘。
app.onclick = e => confetti({origin: {x: e.clientX / innerWidth,y: e.clientY / innerHeight}
});

这里的 e.clientX / innerWidth 表示鼠标事件的 X 坐标除以窗口的内部宽度,e.clientY / innerHeight 表示鼠标事件的 Y 坐标除以窗口的内部高度。

控制数量和扩散角度

  • particleCount:Number(默认值:50),要发射的五彩纸屑的数量。
  • spread:Number(默认值:45),五彩纸屑在垂直方向扩散的角度,45 表示五彩纸屑以垂直方向正负 22.5 度角发射。
app.onclick = e => confetti({particleCount: 200,spread: 180,origin: {x: e.clientX / innerWidth,y: e.clientY / innerHeight}
});

控制发射角度

  • angle:Number(默认值:90):发射的角度,0 表示水平向右;90 表示垂直向上;180 表示水平向左;270 表示垂直向下。
function randomInRange(min, max) {return Math.random() * (max - min) + min;
}
app.onclick = e => confetti({particleCount: 200,spread: 180,angle: randomInRange(0, 360),origin: {x: e.clientX / innerWidth,y: e.clientY / innerHeight}
});

控制重力和消失的速度

  • gravity:Number(默认值:1),粒子下落的速度。1 是全重力,0.5 是半重力,0 表示无重力;大于 1 表示加速下落,负值表示粒子会向上升起。
  • ticks:Number (默认值: 200) ,值越小粒子消失得越快,值越大粒子消失得越慢。
  • startVelocity:Number(默认值:45),五彩纸屑开始移动的速度,以像素为单位。
app.onclick = e => confetti({particleCount: 400,spread: 180,shapes: ['circle', 'circle', 'square'],gravity: 0,startVelocity: 30,ticks: 1000,origin: {x: e.clientX / innerWidth,y: e.clientY / innerHeight}
});

控制颜色和形状

  • colors Array:颜色字符串数组,采用 HEX 格式(# + 3 位或 6 位十六进制数字),可以重复颜色来增加比例,例如 [‘#f00’, ‘#f00’, ‘#f00’, ‘#f00’, ‘#0f0’, ‘#00f’, ‘#ff0’] 表示红色占七分之四,绿色、蓝色、黄色各占七分之一比例。
  • shapes Array:五彩纸屑的形状数组,可以为 square 和 circle。默认设置是均匀混合使用这两种形状。[‘circle’, ‘circle’, ‘square’] 表示使用三分之二的圆圈和三分之一的正方形。

烟花特效

雪花特效

庆祝特效

感谢您的阅读!

最后

整理了75个JS高频面试题,并给出了答案和解析,基本上可以保证你能应付面试官关于JS的提问。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

Canvas Confetti 五彩纸屑特效 JS 插件相关推荐

  1. smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。...

    Smoke.js 是一个浏览器默认警告系统的JavaScript替代品,如果你想要跨浏览器与平台的标准化JavaScript警告窗口,Smoke.js就是你想要的. Smoke.js是一个轻量级且灵活 ...

  2. SwiftUI 动画大全之 五彩纸屑特效含三角形、五星、钻石与自定义图像 (教程含源码)

    实战需求 SwiftUI 动画大全之 五彩纸屑特效含三角形.五星.钻石与自定义图像 (教程含源码) 下雨了,五彩纸屑!SAConfettiView是向您的应用程序添加有趣.多彩的五彩纸屑并让用户感到有 ...

  3. 几个用于前端canvas图片查看编辑的js插件

    几个用于前端canvas图片查看编辑的js插件 1 tui.image-editor 2 Konva 3 AlloyImage 4 zwibbler 5 canvasPS 6 Photo Editor ...

  4. svg五彩纸屑按钮js特效

    下载地址svg代码实现的五彩纸屑按钮特效,点击按钮的时候有纸屑的动画. dd:

  5. RSS文字滚动js特效js插件rss-marquee

    下载地址 rss-marquee.js是一款文字水平滚动特效插件,平滑滚动动画是基于CSS3转换. dd:

  6. html真实雾效果图,HTML5 Canvas逼真烟雾效果js插件解析

    简要教程 smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件.通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果. 使用方法 在页面中引入smoke.js文件. HTML结 ...

  7. html真实雾效果图,HTML5Canvas逼真烟雾效果js插件

    简要教程 smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件.通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果. 使用方法 在页面中引入smoke.js文件. HTML结 ...

  8. vue 画布插件_一个Vue.js插件,用于使用EaselJS控制HTML5画布

    vue 画布插件 vue-easeljs (vue-easeljs) A Vue.js plugin to control an HTML5 canvas using EaselJS. 一个Vue.j ...

  9. HTML转图片的JS插件-rasterizeHTML.js

    在WEB前端工作中,有时需要实现对页面生成缩略图的功能.rasterizeHTML.js就可以将HTML渲染到浏览器的canvas中,直接用JS插件达到生成图片的效果.rasterizeHTML.js ...

最新文章

  1. CentOS 安全配置
  2. opencv2中访问像素的简单方法-自定义一个宏CV_MAT_ELEM2
  3. JAVA线程池管理及分布式HADOOP调度框架搭建
  4. Linux安全基础:grep命令的使用
  5. MongoDB-数据库-mongoose-图形化操作
  6. 设计灵感|排版太死板?提高品质的角度很重要
  7. 电子商务系统的设计与实现(五):账务系统的功能接口设计
  8. 在SQL Server 2017上充分利用Python
  9. dw的php文件怎么连接mysql_wordpress php文件如何链接到mysql数据库
  10. 增值税发票税控开票软件V2.0.48_ZS_20220429(220518)-3
  11. 网件WNDR4300刷openwrt/LEDE固件
  12. C语言实验课基础考点1.0
  13. 金融分析python和r语言比较_金融领域R语言对比python
  14. 网络安全——计算机网络拓扑图
  15. 数据库入口和密码:维普、万方和cnki(转)
  16. 访问知乎出现【出了一点问题,我们正在解决,去往首页】解决方案
  17. 网页简单轮播图的实现
  18. notepad++的JSONviewer插件
  19. 爱普生Epson Artisan 800 一体机驱动
  20. 陶哲轩实分析习题8.3.4

热门文章

  1. ai预测占比_Gartner:预计2020年AI手机占比将达80%
  2. 图片滚动插件jquery bxslider
  3. 详解【C语言】中的二分查找法和折半查找法(例题解答)
  4. 4根内存条不开机的问题(innodisk、金士顿、百维、威刚 128G内存不开机)
  5. SQL日期相关处理——日期相加减
  6. 中英文数字字符串排序(标准库)
  7. The Lapse of Luxury
  8. Python 寻找局部最高点
  9. Orcal学习----Orcal用户关系
  10. 各种nvidia显卡nvlink之后深度学习效率对比、各种显卡功耗、温度对比