JParticles 2.0 发布,打造炫酷的粒子特效。
不好意思哈,在这么繁花似锦的世界里,标题不得不取得吸引眼球一点哈,
不然...还是不啰嗦了,我们进入正题吧

简单介绍一下

JParticles 2.0 版本之前还叫 Particleground.js,相信在用的朋友应该不会陌生,关于 1.x 版本的宣传文案可以移步看这里哈,或许可以帮助你了解 JParticles 2.0 的一些东西。

我们一贯的理念

我们(我/笑哭)一贯的理念是信仰:"The Write Less, Do More" 和 "Keep It Simple And Stupid"
希望插件工具什么的使用起来非常的简单便捷,上手快,不耽误人们宝贵的时间,尤其是在变化迅速的前端,
希望我们的 代码写得简洁,简单,易懂API设计的简洁,简单,易用, 最后 强大,易扩展

此次版本更新日志

看看我们这次版本更新了哪些东西吧,biubiu...贴图:

貌似挺多的,主要我们还是只讲三点吧,剩下的可以看官网慢慢了解,哈哈。

第一点:视差粒子

https://codepen.io/barrior/pe...点击预览

几行 JavaScript 代码:

为了看起来更简洁,定义视差粒子层数的属性就省略了,因为本身它就是 3 层,也挺好的。
CodePen 演示四层,为了让大家能更了解属性的使用方法。

new JParticles.particle('#demo', {
// 开启视差效果
parallax: true, // 定义视差强度
parallaxStrength: 1
});

是不是好少...少到想哭有木有,但是很酷炫~

第二点:模拟语音搜索

学习于京东APP的搜索,上图:

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);
};
};

第三点:waveLoading 模拟进度条加载

这是一个封装好的,简单易用的模拟加载进度条动画。

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谢谢~。

JParticles 2.0 发布,打造炫酷的粒子特效的更多相关文章

  1. Android ViewPager 打造炫酷欢迎页

    Android ViewPager 打造炫酷欢迎页 ViewPager是Android扩展v4包中的类,这个类可以让用户切换当前的View.对于这个类的应用场景,稍加修改就可以应用到多个环境下.比如: ...

  2. Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI

    1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...

  3. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件

    现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...

  4. hexo的next主题个性化教程:打造炫酷网站

    看到有些next主题的网站很炫酷,那么是怎么配置的呢?接下来我会讲一讲如何实现一些炫酷的效果 主要有以下32种: 在右上角或者左上角实现fork me on github 添加RSS 添加动态背景 实 ...

  5. iOS动画开发之五——炫酷的粒子效果

    在上几篇博客中,我们对UIView层的动画以及iOS的核心动画做了介绍,基本已经可以满足iOS应用项目中所有的动画需求,如果你觉得那些都还不够炫酷,亦或是你灵光一现,想用UIKit框架写出一款炫酷的休 ...

  6. 28种CSS3炫酷载入动画特效

    这是一组效果很炫酷的纯CSS3 Loading载入动画特效.这组loading动画共同拥有27种不同的效果.每一种loading动画都是通过CSS3的keyframes帧动画来完毕的,每个载入动画都构 ...

  7. activate-power-mode,让你在Python编码中,感受炫酷的书写特效!

    Atom Atom 是github专门为程序员推出的一个跨平台文本编辑器,具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言.说到这里大家以为我 ...

  8. Linux进阶之使用Oh-My-Zsh打造炫酷终端

    Oh My Zsh是基于zsh命令行的一个扩展工具集,提供了丰富的扩展功能.除了功能增强之外,还提供非常丰富的主题.使用Oh-My-Zsh打造酷炫Shell终端的步骤(Deepin系统): 原始终端: ...

  9. GJM :JS + CSS3 打造炫酷3D相册 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

随机推荐

  1. 【转】JDBC学习笔记(5)——利用反射及JDBC元数据编写通用的查询方法

    转自:http://www.cnblogs.com/ysw-go/ JDBC元数据 1)DatabaseMetaData /** * 了解即可:DatabaseMetaData是描述数据库的元数据对象 ...

  2. Linux学习(一)

    Linux系统 1.组成部分 1.1内核负责的功能 1.1.1:系统内存管理 内存管理即管理物理内存和虚拟内存 (通过硬盘实现的,即swap space),长时间为被访问的内存块会被放到虚拟内存中,当 ...

  3. SourceTree 无法查看组织仓库

    error log: Pushing to remote: Repository not found. 在使用SourceTree进行版本控制,代替git命令行,而且作为免费 跨平台 功能完备的git ...

  4. [CTSC2008] 网络管理

    题目描述 Description M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构 ...

  5. python自动化开发-[第一天]-基础数据类型与编码

    1.Python与其他语言对比 - C语言的解释方式  代码-->机器码-->计算机 - python,java,php等高级语言的解释方式  代码-->字节码-->机器码-- ...

  6. .net之DateTime

    Console.WriteLine(DateTime.Now.Year); Console.WriteLine(DateTime.Now.Month); Console.WriteLine(DateT ...

  7. JS基础——入门必备

    ·首先,来简单的说一下,JS是啥,JS是JavaScript的简写,是 基于浏览器的 基于对象的 事件驱动 脚本语言 ·那么JS有什么用呢?ta可以实现: 表单验证 添加动画效果 动态更改页面内容 A ...

  8. 关于phpMyAdmin表数据不能编辑更改的问题

    今天在使用phpMyAdmin更改表中的数据时, 发现表的前面没有编辑.复制.删除这些内容, 于是我很奇怪,上网查了查,终于找到了一个解决的办法, 原来是我的这个表没有主键,于是我点击表 的 结构 , ...

  9. 【2017-05-05】timer控件、三级联动、帐号激活权限设置

    一.Timer控件 Timer实际就是一个线程控件. 属性:Enabled    是否被启用 Interval     多长时间执行一次控件中的代码 事件: Tick     事件中放要执行的代码. ...

  10. redis 实例2 构建文章投票网站后端

    redis 实例2 构建文章投票网站后端   1.限制条件 一.如果网站获得200张支持票,那么这篇文章被设置成有趣的文章 二.如果网站发布的文章中有一定数量被认定为有趣的文章,那么这些文章需要被设置 ...