JavaScript高级学习之彩色小球球

简介: JavaScript高级学习之彩色小球球

js实现小球跟随鼠标移动


相信有很多朋友们,都没有见过这个库吧,也许你知道jQuery、bootstrap等等,但是这个说实话我也是最近才用到的,Underscore.js是一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象,Underscore提供了100多个函数,包括常用的: map, filter, invoke当然还有更多专业的辅助函数,如:函数绑定, JavaScript模板功能,创建快速索引, 强类型相等测试, 等等。


Underscore官网


d30e8ba141b946298c86e5d1185c89c5.png

这是实现的效果。

首先大家需要知道onmousemove的意思

<div onmousemove="myFunction()">鼠标指针移动到这。</div>

菜鸟教程onmousemove

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>五彩小球</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        html, body, #box{
            width: 100%;
            height: 100%;
        }
        #box{
            background-color: #000;
        }
    </style>
</head>
<body>
    <div id="box"></div>
<script src="js/Underscore-min.js"></script>
<script src="js/Ball.js"></script>
<script>
    // 1. 获取标签
    var box = document.getElementById('box');
    // 2. 监听鼠标在盒子上的移动
    // 颜色数组 和 小球数组
    var colorArr = ['red', 'green', 'blue', 'yellow', 'orange', 'purple', 'pink'];
    var ballArr = [];
    box.onmousemove = function (ev1) {
        var e = ev1 || window.event;
        // 2.1 创建小球,装入小球数组
        var ball = new Ball({
                parentId: 'box',
                left: e.clientX,
                top: e.clientY,
                bgColor:colorArr[_.random(0, colorArr.length - 1)]
                });
        ball.render();
        ballArr.push(ball);
    };
   // 3. 定时器
    setInterval(function () {
        // 清除上一帧产生的小球
        for(var i=0; i<box.children.length; i++){
            box.children[i].remove();
        }
        // 绘制小球和让小球移动
        for(var j=0; j<ballArr.length; j++){
            ballArr[j].render();
            ballArr[j].update();
        }
    }, 50);
</script>
</body>
</html>

还有两个js文件:

function Ball(options) {
    this._init(options);
}
Ball.prototype = {
    _init: function (options) {
        options = options || {};
        // 1. 必要的属性
        this.parentId = options.parentId;
        this.left = options.left;
        this.top = options.top;
        this.r = 60;
        this.bgColor = options.bgColor || 'red';
        // 2. 小球变化的量
        this.dX = _.random(-5, 5);
        this.dY = _.random(-5, 5);
        this.dR = _.random(1, 3);
    },
    render: function () {
        var parentNode = document.getElementById(this.parentId);
        var childNode = document.createElement('div');
        parentNode.appendChild(childNode);
        childNode.style.position = 'absolute';
        childNode.style.left = this.left + 'px';
        childNode.style.top = this.top + 'px';
        childNode.style.width = this.r + 'px';
        childNode.style.height = this.r + 'px';
        childNode.style.borderRadius = '50%';
        childNode.style.backgroundColor = this.bgColor;
    },
    update: function () {
        this.left += this.dX;
        this.top += this.dY;
        this.r -= this.dR;
        if(this.r <= 0){
            this.r = 0;
            ballArr = _.without(ballArr, this);
        }
    }
};

还有一个大家可以去官网下载的包,上面有官网地址哦!!!

35df250186ec445298f4c44c85acaaa2.png



目录
相关文章
|
7月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
284 2
|
7月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
8月前
|
JavaScript 数据可视化 前端开发
three.js简单实现一个3D三角函数学习理解
1.Three.js简介 Three.js是一个基于JavaScript编写的开源3D图形库,利用WebGL技术在网页上渲染3D图形。它提供了许多高级功能,如几何体、纹理、光照、阴影等,以便开发者能够快速地创建复杂且逼真的3D场景。同时,Three.js还具有很好的跨平台和跨浏览器兼容性,让用户无需安装任何插件就可以在现代浏览器上观看3D内容。
287 0
|
JavaScript
js学习--制作猜数字
js学习--制作猜数字
139 4
js学习--制作猜数字
|
JavaScript
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
256 1
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
152 7
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
295 5
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
177 2