使用html+css+js实现魔性的舞蹈
使用html+css+js实现魔性的舞蹈,让我们燥起来!!!
效果图:
代码如下,复制代码即可使用:
<!DOCTYPE html> <html > <head> <meta charset="UTF-8"> <title>The Last Experience</title> <style> html { overflow: hidden; } body { position: absolute; margin: 0; padding: 0; width: 100%; height: 100%; background: #000; } canvas { position: absolute; width: 100%; height: 100%; background: #000; } </style> </head> <body> <script> 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Robot = function () { function Robot(color, light, size, x, y, struct) { _classCallCheck(this, Robot); this.points = []; this.links = []; this.frame = 0; this.dir = 1; this.size = size; this.color = Math.round(color); this.light = light; // ---- points ---- var id = 0; for (var _iterator = struct.points, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var p = _ref; this.points.push(new Point(id++, size * p[0] + x, size * p[1] + y, p[2])); } // ---- links ---- for (var _iterator2 = struct.links, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { var _ref2; if (_isArray2) { if (_i2 >= _iterator2.length) break; _ref2 = _iterator2[_i2++]; } else { _i2 = _iterator2.next(); if (_i2.done) break; _ref2 = _i2.value; } var l = _ref2; var p0 = this.points[l[0]]; var p1 = this.points[l[1]]; var dx = p0.x - p1.x; var dy = p0.y - p1.y; this.links.push(new Link(this, p0, p1, Math.sqrt(dx * dx + dy * dy), l[2] * size / 3, l[3], l[4])); } } Robot.prototype.update = function update() { // ---- beat ---- if (++this.frame % 20 === 0) this.dir = -this.dir; // ---- create giants ---- if (dancerDrag && this === dancerDrag && this.size < 16 && this.frame > 600) { dancerDrag = null; dancers.push(new Robot(this.color, this.light * 1.25, this.size * 2, pointer.x, p