五彩小球案例

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>五彩小球</title>
 6     <style>
 7         *{margin: 0;padding: 0;list-style: none;}
 8         html, body, #box{width: 100%;height: 100%;}
 9         #box{background-color: #000;}
10     </style>
11 </head>
12 <body>
13     <div id="box"></div>
14
15 <script src="js/Underscore-min.js"></script>
16 <script src="js/Ball.js"></script>
17 <script>
18
19     // 装小球
20     var ballArr = [];
21     // 颜色数组
22     var colorArr = [‘red‘, ‘green‘, ‘blue‘, ‘yellow‘, ‘orange‘, ‘purple‘, ‘pink‘];
23
24     // 1. 获取盒子
25     var box = document.getElementById(‘box‘);
26     // 2. 监听鼠标的移动
27     box.addEventListener(‘mousemove‘, function (ev) {
28         var ball = new Ball({
29             ‘parentId‘: ‘box‘,
30             ‘left‘: ev.clientX,
31             ‘top‘: ev.clientY,
32             ‘bgColor‘: colorArr[_.random(0, colorArr.length-1)]
33         });
34         // ball.render();
35         ballArr.push(ball);
36     });
37     // 3. 定时器
38     setInterval(function () {
39         // 清除之前的状态
40         for (var i = 0; i < box.children.length; i++) {
41             box.children[i].remove();
42         }
43
44         // 小球的绘制和移动
45         for(var j=0; j<ballArr.length; j++){
46             ballArr[j].render();
47             ballArr[j].update(ballArr);
48         }
49     }, 50);
50 </script>
51 </body>
52 </html>
function Ball(option) {
    option = option || {};
    // 1. 属性
    this.parentId = option.parentId;
    this.r = 60;
    this.left = option.left || 0;
    this.top = option.top || 0;
    this.bgColor = option.bgColor || ‘red‘;

    // 2. 变化量
    this.dX = _.random(-10, 10);
    this.dY = _.random(-10, 10);
    this.dR = _.random(1, 3);
}

Ball.prototype = {
   constructor: Ball,
   render: function () {
       var parentNode = document.getElementById(this.parentId);
       var childNode = document.createElement(‘div‘);
       childNode.style.width = this.r + ‘px‘;
       childNode.style.height = this.r + ‘px‘;
       childNode.style.backgroundColor = this.bgColor;
       childNode.style.borderRadius = ‘50%‘;
       childNode.style.position = ‘absolute‘;
       childNode.style.left = this.left + ‘px‘;
       childNode.style.top = this.top + ‘px‘;
       parentNode.appendChild(childNode);
   },
   update: function (ballArr) {
       this.left += this.dX;
       this.top += this.dY;
       this.r -= this.dR;
       if(this.r <= 0){
           ballArr = _.without(ballArr, this)
       }
   }
};

原文地址:https://www.cnblogs.com/zhangzhengyang/p/11241514.html

时间: 2024-10-15 07:59:28

五彩小球案例的相关文章

五彩导航案例

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style type="text/css"> 7 a.one{ 8 display:inline-block; 9 height:58px; 10 width:120

足球大数据分析预测软件|足球滚球走地大小球判断方法和预测技巧实战案例

提起足球,关注度最高的就是欧洲足球了,每年赛事除了五大联赛(英超.西甲.德甲.法甲.意甲)之外,还会有欧冠(欧洲冠军联赛).欧联杯等等.据统计职业足球最早出现于1885 年的英格兰,距今已有134年,沉淀了海量的赛事数据(比分.欧赔.盘口.大小球.角球),随着科学技术的进步,很难想象,在今天足球会与大数据(big data)挂上勾.这几年是大数据的热潮,随着互联网+的诞生,互联网大数据被应用到各个行业上,运用大数据技术分析预测足球赛事的胜平负.大小球.亚盘也不例外.或许很多朋友都有一个疑问,足球

【web前端学习部落22群】分享 碰撞的小球开源小案例

对于课程中的疑问,大家可以加 web前端学习部落22群 120342833和其他老师还有众多的小伙伴们进行沟通交流哦,群里还有不少技术大拿.行业大牛 可以一起探讨问题,我们也会安排专业的技术老师为大家答疑解惑呢! <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>碰撞的小球</title> <style type="text/cs

20 UGUI入门案例_04创建旋转的小球游戏

学习笔记,如有错误请指正.?号处也请各位指点下,谢谢. 1创建cube 2创建脚本RotateSelf.cs,并赋值给cube‘ using UnityEngine; using System.Collections; public class RotateSelf : MonoBehaviour { public float speed = 180; // Use this for initialization void Start () { } // Update is called onc

自定义控件---继承View类方式(五彩绚烂的水波纹案例)

---------------------------------------看效果(还有动画效果哦)---------------------------------------------------- activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

在Android上仿百度贴吧客户端Loading图标小球

封面预览 前言 使用百度贴吧客户端的时候发发现加载的小动画挺有意思的,于是自己动手写写看.想学习自定义View以及自定义动画的小伙伴一定不要错过哦. 读者朋友需要有最基本的canvas绘图功底,比如画笔Paint的简单使用.Path如何画直线等简单的操作,不熟悉也没关系,下文带大家撸代码的时候会简单的讲一下. 此篇文章用到如下知识点: 1).自定义View的测量 2).自定义View属性的自定义及使用 3).Path绘制贝塞尔曲线 4).Canvas的裁剪 5).用ValueAnimator控制

HTML5CSS3特效-上下跳动的小球-遁地龙卷风

(-1)写在前面 我用的是chrome49,这个idea是我在stackoverflow上回答问题时看到了,多谢这位同行,加深了我对很多技术点的理解,最近刚到北京,忙碌了一两天,在后续的日子里,会被安排面试,学习计划只能按工作流走了,做完这个要看一个特别酷的效果,好激动! (0)效果演示 (1)实现方案 动画效果都是用animation做的 (2)知识点详解 a. border-radius:40px; 当div的长高都是80px的时候,div是一个圆形,其实长高都是60px的时候也是圆型,同理

JS_DOM之小球随鼠标移动事件

DOM事件之鼠标事件——小案例(块随鼠标移动事件) html 1 <img id="ballImg" src="./images/ball-light-2.gif" title="彩色闪烁小球"> js: 1 var currentX = 0; 2 var currentY = 0; 3 var desX = 0; 4 var desY = 0; 5 6 window.onload = function(){ 7 var ball =

Javascript+CSS经典效果案例剖解

在编写前端代码的时候经常会因为网页添加什么动态效果而发愁,现在给你一些经典的案例,可以到时候参考一下的. CSS+js滚动图片功能: 涉及到的知识点:CSS: width height background-image以及其他一些样式属性, Javascript:Event事件有:mouseover mouseout click image的load DOM:element.style element.scrollTop 以及 setInterval() clearInterval()等 需要定