上代码之前,先看一下效果:

CSS部分(此处用元素模拟萤火虫,背景可自行设置):

<style>.box{width: 4px;height: 5px;background: wheat;position: absolute;border-radius: 50%;}body{background: url(../img/bg.jpg)  ;}
</style>

JS部分:

<script>
class Glowworm{constructor(){// 获取屏幕的可视区域的宽高,用作将来的随机范围this.clientW = document.documentElement.clientWidth;this.clientH = document.documentElement.clientHeight;// 假设萤火虫的宽高this.w = 20;this.h = 20;}createEle(){var div = document.createElement("div");div.className = "box";document.body.appendChild(div);// 在创建元素之前一定得先生成随机坐标div.style.left = this.x + "px";div.style.top = this.y + "px";// 元素创建好之后,立即运动this.move(div);}randomPos(){// 随机生成坐标this.x = random(0,this.clientW - this.w);this.y = random(0,this.clientH - this.h);}move(ele){// 开始运动之前,还得随机生成目标this.randomPos();// 开始运动move(ele,{left:this.x,top:this.y},()=>{// 一个动画结束后,重复开启当前动画,即可this.move(ele);})}
}for(var i=0;i<60;i++){// 先得到实例var g = new Glowworm();// 生成随机坐标g.randomPos();// 再创建元素g.createEle();
}function random(a,b){return Math.round(Math.random()*(a-b)+b);
}
</script>

最后需要引入一个运动函数:
运动函数

原生JS基础实现萤火虫效果【附源码及封装函数】相关推荐

  1. 使用原生js和css制作钟表(附源码)

    最近学到css和js,用css和js制作了一个钟表,原理很简单,在js中定义管理秒针.分针.时针的函数,在秒针函数中让角度自加6,每隔一秒调用一次就完事.预看效果请点我(主要实现功能,界面不太美观) ...

  2. html仿微信滑动删除,使用Vue实现移动端左滑删除效果附源码

    左滑删除在移动端是很常见的一种操作,常见于删除购物车中的商品,删除收藏夹中文章等等场景.我们只需要手指按住要删除的对象,然后轻轻向左滑动,便会出现删除按钮,然后点击删除按钮即可删除对象. 点击下载源码 ...

  3. php jquery ajax登录,jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)

    弹出层主要用于展示丰富的页面信息,还有一个更好的应用是弹出表单层丰富交互应用.常见的应用有弹出登录表单层,用户提交登录信息,后台验证登录成功后,弹出层消失,主页面局部刷新用户信息.本文我们将给大家介绍 ...

  4. Android简单、高性能的高斯模糊(毛玻璃)效果(附源码)

    毛玻璃效果相信很多朋友都眼红很久了, 隔壁ios系统对高斯模糊早就大范围使用了, 咱们Android却丝毫不为所动, 于是就只能靠广大开发者咯. 这是目前市面上性能最高的方案, 也不知道最初是哪位大神 ...

  5. CSS篇--水滴效果(附源码)

    效果展示 源码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  6. 一个炫酷的opengles2.0翻页效果(安卓上opengles2.0 翻书效果附源码)

    写了一个opengles2.0的小效果,平台是安卓,给各位朋友们看一看,有兴趣想要源码的朋友可以email我 5358951@qq.com.   先看效果 前言 1.在安卓上实用opengles进行开 ...

  7. Js实现Flash播放效果[带源码]

    关于做这样的功能,需要掌握html基本元素.css布局,js知识.当你看到关于轮播图这样的效果展示,有点不敢相信,因为自己的真的不会,一方面真的不会,所以就是不会,详细一点的介绍,可是又没有时间,源码 ...

  8. html5 相册系统php源码,HTML5 CSS3打造相册效果附源码下载

    今天偶然发现电脑里面还有这样的一个例子,感觉效果还不错,不记得啥时候下载的了,也好久没上w3cfuns了,怀念学习前台的日子,给大家分享下. 效果图: 效果是不是还是很不错的,最主要的是没有使用一行j ...

  9. JS/Jquery版本的俄罗斯方块(附源码分析)

    转载于 http://blog.csdn.net/unionline/article/details/63250597 且后续更新于此 1.前言 写这个jQuery版本的小游戏的缘由在于我想通过从零到 ...

最新文章

  1. node.js 出现cannot find module ‘xxx‘ 解决办法
  2. 网络编程2之Socket简介和java.net包
  3. 极限中0除以常数_高中物理必知的50个关键常数
  4. BERT重计算:用22.5%的训练时间节省5倍的显存开销(附代码)
  5. 爬虫-ProxyHandler代理类-通过代理发起请求
  6. SAS在金融中的应用五
  7. 苹果“自研”心不死 仍考虑收购英特尔基带业务
  8. git由于网络原因导致 please make sure you have the correct access rights and the repository exists
  9. English trip V1 - 2.Don't Do That Teacher:Patrick Key: 祈使句(imperatives)
  10. 谭浩强 C程序设计(第五版)
  11. python程序设计与应用_Python程序设计及应用
  12. C#、ASP.NET 将PDF转换成Swf
  13. Visio自定义连接线,连接点位置
  14. 超详细的CMD文件讲解(DSP28035)
  15. 2020年阴历三月初九投资理财~从牛人那里吸取能量,让自己更加强大
  16. CentOS 下安装Mplayer播放器(转载)
  17. 从汉语与英语最常用字词,分析汉语与英语的异同(一)
  18. 【产业互联网周报】阿里增持菜鸟;微信支付宝向外国游客开放服务;百度推“区块链+智能城市”建设...
  19. 常微分方程组之龙格-库塔法
  20. 使用 redis 中的 lzf 压缩算法

热门文章

  1. Error500错误的解决方法
  2. 婴儿加湿器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  3. 苹果秋季发布会打破惯例:最强芯片A14先用在iPad上!
  4. 6.移动端布局-rem布局
  5. AutoHotkey —— 自定义热键编辑软件(设置Typora字体颜色快捷键应用)
  6. 什么是六西格玛—讨教大学
  7. 优Link—移动办公平台
  8. 基于ADC0832模数转换+数码管/LCD显示+proteus仿真
  9. 统计机器学习 作业一 采用交叉验证、留出法、自助法划分数据集,绘制PR图
  10. 四大组件之ContentProvider(三)-ContentProvider的数据存储