js实现的彩色方块飞舞奇幻效果


Posted in Javascript onJanuary 27, 2016

本文实例讲述了js实现的彩色方块飞舞奇幻效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

js实现的彩色方块飞舞奇幻效果

具体代码如下:

<!DOCTYPE html>
<html>
 <head>
  <title>demo</title>
  <style type="text/css">
   body {
    margin:0; padding:0;
   }
   ul {
    list-style:none; margin:0; padding:0;
   }
   li {
    position:absolute;
   }
   #power {
    font-size:50px; line-height:100px; border:2px solid green; color:green;
    position:absolute; right:20px; bottom:20px; 
   }
  </style>
 </head>
 <body>
  <ul id="canvas"></ul>
 </body>
 <script type="text/javascript">
  var $ = function(id) {
   return document.getElementById(id);
  }
  var $_name = function(tag) {
   return document.getElementsByTagName(tag);
  }
  var color = function() {
   var _color = "rgb(";
   _color += Math.round(Math.random()*255);
   _color += ",";
   _color += Math.round(Math.random()*255);
   _color += ",";
   _color += Math.round(Math.random()*255);
   _color += ")";
   return _color;
  }
  var createLi = function(attr) {
   var ele = document.createElement("li");
   ele.style.backgroundColor = attr.bgColor || "black";
   ele.style.left = attr.left + "px";
   ele.style.top = attr.top + "px";
   ele.style.width = ele.style.height = "15px";
   ele.onmouseover = function() {
    var _self = this;
    var _rotate = 0;
    if(_self.interval) {
     clearInterval(_self.interval);
     _self.style.backgroundColor = _self._backgroundColorBK;
    }
    _self._backgroundColorBK = _self.style.backgroundColor;
    _self.style.backgroundColor = color();
    _self.interval = setInterval(function() {
     _self.style.webkitTransform = "rotate("+_rotate+"deg)";
     _rotate += 30;
     if(_rotate > 360) {
      clearInterval(_self.interval);
      _self.onmouseover = null;
      _self.style.backgroundColor = _self._backgroundColorBK;
      move(_self);
      return;
     }
    }, 100);
   }
   return ele;
  }
  var loca = {
   x: 1000, 
   y: 0
  };
  var move = function(obj) {
   var _self = obj;
   var curX = parseInt(_self.style.left);
   var curY = parseInt(_self.style.top);
   var sX = loca.x - curX;
   var sY = loca.y - curY;
   var addX = sX/36;
   var addY = sY/36;
   var rotate = 0;
   var backgroundColorBK = _self.style.backgroundColor;
   _self.interval = setInterval(function() {
    _self.style.width = _self.style.height = (parseInt(_self.style.height) + 5) + "px";
    _self.style.webkitTransform = "rotate("+rotate+"deg)";
    curX += addX; 
    curY += addY;
    _self.style.left = curX + "px";
    _self.style.top = curY + "px";
    _self.style.backgroundColor = color();
    rotate += 10;
    if(rotate > 360) {
     _self.style.left = loca.x + "px";
     _self.style.top = loca.y + "px";
     clearInterval(_self.interval);
     _self.style.backgroundColor = backgroundColorBK;
     return;
    }
   }, 30);
  }
  var init = function() {
   var ul = $("canvas");
   for(var i=50; i<90; i++) {
    for(var j=50; j<90; j++) {
     var color = "rgb("+i+","+j+","+Math.round(Math.random()*255)+")";
     ul.appendChild(createLi({bgColor: color, left:(j-50)*16 ,top:(i-50)*16}));
    }
   }
  }
  var main = function() {
   init();
  }
  main();
 </script>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
提高jQuery性能的十个诀窍
Nov 14 Javascript
JavaScript中的cacheStorage使用详解
Jul 29 Javascript
JavaScript操作 url 中 search 部分方法函数
Jun 15 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 Javascript
angular-ngSanitize模块-$sanitize服务详解
Jun 13 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 Javascript
angular2路由之routerLinkActive指令【推荐】
May 30 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
详解小程序之简单登录注册表单验证
May 13 Javascript
Vue实现购物车详情页面的方法
Aug 20 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 #Javascript
基于JavaScript实现瀑布流效果(循环渐近)
Jan 27 #Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 #Javascript
js实现简单排列组合的方法
Jan 27 #Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 #Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
Jan 27 #Javascript
jQuery ajax分页插件实例代码
Jan 27 #Javascript
You might like
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
PHP实现的简单日历类
2014/11/29 PHP
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python Tkinter版学生管理系统
2019/02/20 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
毕业生简单求职信
2013/11/19 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
大学老师推荐信
2014/02/25 职场文书
行政部岗位职责范本
2014/03/13 职场文书
家长通知书家长评语
2014/04/17 职场文书
解除同居协议书
2015/01/29 职场文书
升职自荐信范文
2015/03/27 职场文书
老公出轨后的保证书
2015/05/08 职场文书