Rico 设计笔记

  • 1、阶乘
  • 2、累乘
  • 3、模拟在线人数自动变化
  • 4、鼠标移动位移
  • 5、 随机粒子运动
  • 首页
  • 文章
  • 设计
  • TodoList
  • Blender
  • 代码随笔
  • 关于我
  • 网站列表
  • 时间线
  • 文档(外链)

JS 常用方法封装 —— 代码库记录

  • ricochan
  • 2020-02-23
  • 0

日常开发中,经常会封装一些常用的功能,有些复用性比较高。最好的方式还是封装起来,需要的时候再复用。这里给自己做个记录。

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)

在具体的场景设计上面,可以起到不错的效果。

© 2025 Rico 设计笔记
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}