JParticles 2.0 发布,打造炫酷的粒子特效。
很差意思哈,在这么繁花似锦的世界里,标题不得不取得吸引眼球一点哈,
否则...仍是不啰嗦了,咱们进入正题吧前端
JParticles 2.0
版本以前还叫 Particleground.js
,相信在用的朋友应该不会陌生,关于 1.x
版本的宣传文案能够移步看这里哈,或许能够帮助你了解 JParticles 2.0
的一些东西。git
咱们(我/笑哭)一向的理念是信仰:"The Write Less, Do More"
和 "Keep It Simple And Stupid"
。
但愿插件工具什么的使用起来很是的简单便捷,上手快,不耽误人们宝贵的时间,尤为是在变化迅速的前端,
但愿咱们的 代码写得简洁,简单,易懂
,API设计的简洁,简单,易用
, 最后 强大,易扩展
!github
看看咱们此次版本更新了哪些东西吧,biubiu...贴图:segmentfault
貌似挺多的,主要咱们仍是只讲三点吧,剩下的能够看官网慢慢了解,哈哈。dom
https://codepen.io/barrior/pe...函数
几行 JavaScript
代码:工具
为了看起来更简洁,定义视差粒子层数的属性就省略了,由于自己它就是
3
层,也挺好的。
CodePen 演示四层,为了让你们能更了解属性的使用方法。学习
new JParticles.particle('#demo', { // 开启视差效果 parallax: true, // 定义视差强度 parallaxStrength: 1 });
是否是好少...少到想哭有木有,可是很酷炫~动画
学习于京东APP的搜索,上图:this
https://codepen.io/barrior/pe...
上 JavaScript
代码:
若是你使用过
1.x
, 相信你对wave
的参数配置很理解,
咱们删除了以前的旧方法setOffsetTop()
,添加了新方法:setOptions()
,
这个方法就更增强大与自由了,能够控制更多的属性的变化,达到咱们想要的效果。
这里咱们主要的控制就是这个方法了,只是按住这个自定义事件是用户本身的行为,
因此这里贴上自定义代码把咱们简洁的API
,弄的好像很复杂了同样,冤枉~
其实一共就两处,见下面标注。
var settings = { crestHeight: [10, 14, 18], speed: .1 }; // 这里是第 ① 处 // JParticles.utils.extend 等同于 jQuery.extend,你也可使用 Object.assign 替代。 var effect = new JParticles.wave('.instance .demo', JParticles.utils.extend({ num: 3, lineColor: ['#e53d27', '#42e527', '#27C9E5'], lineWidth: [.7, .9, 1], offsetTop: .65, rippleNum: 2 }, settings)); // 线条波动效果 document.querySelector('.voice').onmousedown = function () { clearInterval(this.timer); this.timer = setInterval(function () { var crestHeight = settings.crestHeight.map(function (item) { // 获取随机波动值 item += JParticles.utils.limitRandom(20, -20); // 处理 (0, 1) 之间的值为整数 if (item < 1 && item > 0) { item = Math.ceil(item); } return item; }); // 这里是第 ② 处 // 经过 setOptions() 来控制线条的波动 effect.setOptions({ crestHeight: crestHeight, speed: [.2, .14, .1] }); }, 100); // 复原 var self = this; document.onmouseup = function () { document.onmouseup = null; clearInterval(self.timer); effect.setOptions(settings); }; };
这是一个封装好的,简单易用的模拟加载进度条动画。
1.x
版本是经过 wave
这个波浪运动来手写加载进度条的内容,并非很方便,参数的控制也麻烦,
因而 2.0
着重封装了这个模拟加载进度条的动画,这个特效在单页应用首次加载什么的仍是很须要的吧。
又高大上,又能够缓解加载的等待心情。
如今就来看看是怎么简单的使用这个功能特效吧,咱们以加载 baidu.com
首页为示例,貌似其余的不容许 iframe
加载:
https://codepen.io/barrior/pe...
简单的 JavaScript
代码(CodePen 的代码是有对细节进行调整,而核心内容就是下面这么简单):
var demo = document.querySelector('.demo'); // 生成 loading 动画 var loading = new JParticles.waveLoading(demo); // 当你告诉 loading 加载完了,loading 就加载结束,并触发这个事件 loading.onFinished(function () { // 这时,你就能够删除 loading 动画了,让页面显示出来 demo.parentNode.removeChild(demo); }); // 加载完,告诉 loading 加载完了,让 loading 结束 // 由于这是模拟进度条,因此你得告诉 loading,它才知道页面此时已经加载完了 window.onload = function () { loading.done(); };
这个仍是得致歉,以前承诺的会在新版增长QQ登陆背景效果(Delaunay三角的实现)
,因为时间也挺赶的,
如今还没研究出Delaunay三角的实现
,固然其实也能够用等研究好三角函数作出效果来了再发,可是这样就耽误的新版的发布,还不如先把能用的发出来,先用着能用的,后续再慢慢添加其余有意思的东西进来。
此处,对看过更新日志并满怀期待的同志表示深深的歉意!
官网(我想这应该是一个很是棒的文档,由于很用心在写):jparticles.js.org
若是你喜欢这个插件库并能帮助到你的实际工做中,但愿它能发展的更好,提供更多有趣实用的特效,支持做者,烦请点个 Star O(∩_∩)O谢谢~。