上面两张为素材图

方法一:类的方法

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">html{height: 100%;}body{margin: 0;padding: 0;height:100%;background: url(img/bg.jpg) no-repeat;background-size: cover;}img{/*display: block;*/position: absolute;width: 20px;height:auto;}</style></head><body><!--<img src="img/1.jpg"/>--><script src="js/startMove.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">//面向对象   类的创建方法class Fireworm{constructor(){this.oImg = document.createElement("img");this.oImg.src = "img/1.jpg";}//取随机位置pos(){var cw = document.documentElement.clientWidth;var ch = document.documentElement.clientHeight;this.posx = Math.floor(Math.random()*(cw - 20));this.posy = Math.floor(Math.random()*(ch - 20));}//萤火虫显示show(){//调用位置this.pos();document.body.appendChild(this.oImg);this.oImg.style.left = this.posx + "px";this.oImg.style.top = this.posy + "px";}//萤火虫飞fly(){//再去获取下位置,保证和当前位置不一样this.pos();//调用startMove函数来控制萤火虫的运动startMove(this.oImg,{left:this.posx,top:this.posy},()=>{this.fly();})}}for(let i = 0;i < 50;i++){//控制萤火虫的个数var fireworm = new Fireworm();fireworm.show();fireworm.fly();}</script></body>
</html>

方法二:组合创建法

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">html{height: 100%;}body{margin: 0;padding: 0;height:100%;background: url(img/bg.jpg) no-repeat;background-size: cover;}img{/*display: block;*/position: absolute;width: 20px;height:auto;}</style></head><body><script src="js/startMove.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">//面向对象   组合创建法function Fireworm(){this.oImg = document.createElement("img");this.oImg.src = "img/1.jpg";}//获取随机位置Fireworm.prototype.getranPos = function(){//获取可视区域宽高var cw = document.documentElement.clientWidth;var ch = document.documentElement.clientHeight;//获取萤火虫的出现位置this.posx = Math.floor(Math.random()*(cw - 20));this.posy = Math.floor(Math.random()*(ch - 20));}//萤火虫展示出来Fireworm.prototype.show = function(){//展示出第一次的位置this.getranPos();document.body.appendChild(this.oImg)this.oImg.style.left = this.posx + "px";this.oImg.style.top = this.posy + "px";}//萤火虫飞Fireworm.prototype.fly = function(){//再获取下位置,保证两次位置不一样this.getranPos();//调用运动函数startMovestartMove(this.oImg,{left:this.posx,top:this.posy},()=>{this.fly();})}for(var i = 0;i < 30;i++){//控制萤火虫的个数var fireworm = new Fireworm();fireworm.show();fireworm.fly();}</script></body>
</html>

js用类的方法写萤火虫和组合创建的方法写萤火虫相关推荐

  1. cultureinfo 类 java_为国家,语言组合创建自定义CultureInfo

    我正在开发一个.net 4.5应用程序,需要多语言支持多文化等 . 以下是国家/语言的示例列表 俄罗斯/俄罗斯 比利时/法国 比利时/荷兰 对于上述所有内容,可以根据上述文化名称创建CultureIn ...

  2. python可抓取数据包括什么_Python对JS型数据抓取有什么特别好的方法吗,pythonjs型抓取,想写一个爬虫,但是需要抓...

    Python对JS型数据抓取有什么特别好的方法吗,pythonjs型抓取,想写一个爬虫,但是需要抓 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓到呢? 最好是用pyt ...

  3. [js] 对`a == (‘1‘||‘2‘||‘3‘) ? false : true`写法进行改进,写出你优化后的方法

    [js] 对a == ('1'||'2'||'3') ? false : true写法进行改进,写出你优化后的方法 ![1,2,3].includes(+a) or !['1', '2', '3']. ...

  4. [js] 写一个 document.querySelector 的逆方法

    [js] 写一个 document.querySelector 的逆方法 document.queryNode = function(node){if(node.id){return '#'+ nod ...

  5. js自定义类,混合的构造函数/原型方式

    "混合的构造函数/原型方式" 用构造函数来定义非函数属性,用原型方式定义对象的函数属性,结果所有函数都只创建一次,而每个对象都具有自由的对象属性实例.  function ocar ...

  6. js调用.net后台事件,和后台调用前台等方法总结

    1. javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.get ...

  7. php利用ftp上传视频,PHP用FTP类上传文件视频等的简单实现方法

    文件1:ftp.php<?php /** * 仿写CodeIgniter的FTP类 * FTP基本操作: * 1) 登陆; connect * 2) 当前目录文件列表; filelist * 3 ...

  8. 写一个静态HTML页面,直接写HTML代码和用JS动态生成代码,哪种方式要好

    如果写一个静态HTML页面,直接写HTML代码和用JS动态生成代码,哪种方式要好点?为什么? 不考虑人力因素(手写HTML太费时间排除),请从读取和解析或者其他的角度分析.谢谢 添加评论 分享 按投票 ...

  9. Mootools.js实现js的类的方式

    Class MooTools框架的基类. Class Method: constructor 语法: var MyClass = new Class(properties); 参数: 性能 - 可以是 ...

最新文章

  1. Linux程序包管理(yum)
  2. 还纠结选机器学习还是深度学习?看完你就有数了
  3. StringBuffer
  4. 增强DropDownList和ListBox控件:保持客户端脚本添加的options
  5. jquery中$each()
  6. 用java写个简单的直播强求_全网最简单易懂的Netty入门示例,再不会用Netty我直播吃翔...
  7. 关于python多线程和定时器 看图不说话
  8. 直接拿来用!超实用的Java数组技巧攻略
  9. 第四季-专题6-Linux内核子系统
  10. 信息安全工程师(中级)—重要知识点总结
  11. 基于DNN的IMDB电影数据集文本分类
  12. String slices
  13. 海南旅游自由行攻略怎么玩
  14. Oracle 11g安装过程中提示先决条件检查不通过的解决方法
  15. python 流水作业调度_动态规划——流水作业调度问题
  16. 黑客 骚扰欺诈 呼死你之外还假冒给好友打电话
  17. 华为android o适配名单,华为给出首批升级名单,这8款华为手机率先适配Android Q 10系统...
  18. java excel 导入 格式转换_【转】JAVA实现EXCEL的导入和导出(二)
  19. Input上传多个文件
  20. Win11 “qq无法访问个人文件夹”解决方法(原创)

热门文章

  1. 双城记 A Tale of Two Cities
  2. 十工位转盘工程案例三菱5U,plc威纶通触摸屏
  3. feature aggregate
  4. 算法衡量auc_优化AUC两遍学习算法
  5. 常用Linux Shell命令
  6. Stable Diffusion10
  7. scrcpy 使用教程:将安卓设备投屏到 PC 端
  8. Qt/C++编写自定义控件48-面板窗体控件
  9. android 不会ndk,Android ndk找不到atof功能
  10. Yii 快速入门教程