particleChar使用canvas实现文字粒子化展示效果
其中canvas绘图使用了sketch.js项目
首先引入particleChar.js,然后在body最后或者dom加载完成后创建particleChar对象
var a = new particleChar();(默认以id为particleChar的元素为展示元素,详细参数见后面的介绍)
a.queueCreate("a","b");(如此即可创建展示队列)
particleChar.show([string])展示。可选参数,展示初始内容或者参数里的内容
particleChar.pause()暂停或者恢复
particleChar.setOption(option)修改设置。必选参数,参数为一个包含设置内容的对象
particleChar.moveBy(x, y, z, callback);移动。在showOpen和showNext均为false时才可以调用,移动粒子位置,同时可以添加回调函数
particleChar.queueCreate([string|obj]);添加队列。参数为字符串或者包含参数的对象,参数长度至少为一
particleChar.queueClear();清空队列
particleChar.repaint();重绘。用于更新位置或者参数
particleChar.getText();获得当前显示的字符内容
表中给出的值为默认值
{
"container": "particleChar", //容器,只有创建对象时才有用(dom的id值)
"text": "particleChar", //显示文字
"fontFamily": "微软雅黑", //字体
"fontSize": 200, //字号(推荐值域60-400)
"fontColor": "#76A4D4", //字体颜色(只支持hex颜色)
"fontColorRandom": false, //是否随机文字颜色(每个点的颜色都不一样)
"dotRadius": 5, //点半径(推荐值域2-8)
"dotDistance": 12, //采样距离(推荐值域4-20)
"focalLength": 250, //焦距
"xOffset": 0, //x偏移(如果值的绝对值大于1时单位为像素,小于1时为比例)
"yOffset": 0, //y偏移
"v1": 0.1, //组成速度(推荐值域0.01-0.2)
"v2": 0.1, //散开速度(推荐值域0.01-0.2)
"showTime": 1000, //展示时间
"showOpen": true, //是否展开
"showNext": true, //是否展示下一个
"waitTime": 0, //队列间等待时间
"backgroundColor": "transparent", //背景颜色(默认transparent是透明,可以指定hex颜色)
"backgroundColorRandom": false, //是否随机背景颜色
"showTypeBefore": "spread", //合并之前的样式(样式支持内容:spread随机散开,top顶部随机散开,bottom底部随机散开,nearby目标位置附近随机散开)
"showTypeAfter": "spread", //展开之后的样式
"queueLeave": false, //元素是否展示后离开队列
"callbackBefore": null, //开始时的回调(传入函数)
"callbackMiddle": null, //合并展示完成后的回调,在showOpen为true时才会被调用
"callbackAfter": null, //一个动作完成后的回调
"optionSave": false, //仅在添加队列时有效,将此次内容参数保存为默认参数
}
在创建对象时传入的参数为默认值,队列中修改参数如果optionSave为true是将此次出现的参数保存为默认参数,否则不会保存参数
使用参数时仅将自己需要的内容放入即可,不需要全部放入
js新手练习,最初的版本参考了网上canvas的一些操作,后来感觉自己已经掌控不了逐渐增加的代码行数,最后大概就是这样了,肯定还会有些bug,但是也基本上成型了
制作:IwYvI
初版时间:2015.7.25
修改时间:2016.3.8