日常开发中,经常会封装一些常用的功能,有些复用性比较高。最好的方式还是封装起来,需要的时候再复用。这里给自己做个记录。
1、阶乘
factorial = num => { let count = 1; for (let i = 1; i <= num; i++) { count *= i; } return count; }
2、累乘
function cumsum() { let sum = 0; for (let i = 0; i < arguments.length; i++) { sum += arguments[i]; } return sum; }
3、模拟在线人数自动变化
// 在线人数自动变化插件
(function($){
$(document).ready(function(){
// 创建构造函数
// ele是元素, opt是文档(JQ所有文档内容)
var onlineChange=function(ele,opt,basic,num){
this.ele = $(ele);
//定义用户可更改的默认值
this.defaults ={
basic:['2000','3000','40000'],
num:'5',
time:'300'
};
this.settings = $.extend({},this.dedaults,opt);
}
onlineChange.prototype ={
//初始化函数,页面加载之前就要添加所有的事件
change:function(){
var _this = this;
basic = _this.settings.basic;
num = _this.settings.num;
time = _this.settings.time;
var length = _this.ele.length;
let count, random_n;
function auto_count(){
for(let i = 0;i<=length;i++){
randow_n = Math.floor((Math.random()*num));
count= Math.floor(basic[i])+randow_n;
_this.ele.eq(i).text(count);
}
}
setInterval(auto_count,time);
}
}
$.fn.onlineNum = function(option){
var onlinechange = new onlineChange(this,option)
return onlinechange.change();
}
});
})(jQuery);
//调用
$(document).ready(function(){
$('.online-num').onlineNum({//调用函数
basic:['4329'],//顺序排列在线人数基数
num:'100',//随机增长的数值范围,示例[0,100];
time:'2000' //自动变动时间,1000=1秒
});
});
4、鼠标移动位移
window.onload = function(){
document.onmousemove = function(event){
var left = event.clientX/130 +'px';
var top = event.clientY/130+'px';
var z = event.clientX/100+'px';
$(".steps .step:first-child").css("transform","translate3d("+left+","+top+","+z+")");
};
};
5、 随机粒子运动
同样也是这两个页面背景运用到的粒子效果插件 ukrainebeauty.net/12 和 ukrainebeauty.net/14
粒子插件:JParticles - 一个简洁,高效,轻量级的 Canvas 粒子运动特效库
使用简单,轻量级,可设置参数多。
具体看文档就已经够详细了。
目前具体效果有五个,分别是:
- 粒子运动(Particle)
- 波纹运动(Wave)
- 波纹进度条(WaveLoading)
- 雪花飘落(Snow)
- 线条动画(Line)
在具体的场景设计上面,可以起到不错的效果。