原生JS实现的多个彩色小球跟随鼠标移动动画效果示例


Posted in Javascript onFebruary 01, 2018

本文实例讲述了原生JS实现的多个彩色小球跟随鼠标移动动画效果。分享给大家供大家参考,具体如下:

实现方法:

每个小球移动都有自己的坐标,小球移动的同时,需要进行坐标传递,将第一个坐标依次传递给最后一个坐标,来实现小球跟着移动的效果

实现代码:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>小球运动</title>
  <style type="text/css">
   p {
    border-radius: 50%;
    width: 30px;
    height: 30px;
    position: absolute;
    text-align: center;
    line-height: 30px;
    color: white;
   }
  </style>
 </head>
 <body>
 </body>
 <script type="text/javascript">
  //创建数组存储所有的小球
  var balls = [];
  //创建小球函数
  function createballs(){
   for (var i = 0;i < 60;i++) {
    var ball = document.createElement("p");
     ball.innerHTML = i + 1;
     ball.style.backgroundColor = randomColor();
    //将创建的小球存储到数组中
    document.body.appendChild( ball);
    //将所有的小球存在数组中
     balls.push( ball);
   }
  }
  createballs();
  //随机函数
  function randomNum(m, n) {
   return Math.floor(Math.random() * (n - m + 1) + m);
  }
  //随机颜色
  function randomColor() {
   return "rgb(" + randomNum(0, 255) + "," + randomNum(0, 255) + "," + randomNum(0, 255) + ")";
  }
  document.onmousemove = function(e){
   var eventObj = e || event;
   for(var i = balls.length - 1;i > 0;i--){
    //将小球的下标通过for循环进行传递
     balls[i].style.left = balls[i - 1].style.left;
     balls[i].style.top= balls[i - 1].style.top;
   }
   //将第一个小球赋值为最新的事件对象中的坐标
    balls[0].style.left = eventObj.clientX + "px";
    balls[0].style.top= eventObj.clientY + "px";
  }
 </script>
</html>

运行效果:

原生JS实现的多个彩色小球跟随鼠标移动动画效果示例

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

Javascript 相关文章推荐
javascript showModalDialog 内跳转页面的问题
Nov 25 Javascript
JavaScript mapreduce工作原理简析
Nov 25 Javascript
兼容IE和FF的图片上传前预览js代码
May 28 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
vue-test-utils初使用详解
May 23 Javascript
jQuery zTree树插件的使用教程
Aug 16 jQuery
详解ES6 中的Object.assign()的用法实例代码
Jan 11 Javascript
Vue组件之自定义事件的功能图解
Feb 01 #Javascript
微信小程序三级联动选择器使用方法
May 19 #Javascript
jquery应用实例分享_实现手风琴特效
Feb 01 #jQuery
使用JS模拟锚点跳转的实例
Feb 01 #Javascript
微信小程序实现图片预览功能
Jan 31 #Javascript
vue单页应用加百度统计代码(亲测有效)
Jan 31 #Javascript
微信小程序实现MUI数字输入框效果
Jan 31 #Javascript
You might like
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
关于JS管理作用域的问题
2013/04/10 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
vue实现节点增删改功能
2019/09/26 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
Python实现上下班抢个顺风单脚本
2018/02/07 Python
python多进程并行代码实例
2019/09/30 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
财务分析个人的自荐书范文
2013/11/24 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
新学期开学寄语
2014/01/18 职场文书
会计学生自我鉴定
2014/02/06 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
关于感谢信的范文
2015/01/23 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python