电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

js實現(xiàn)彈幕飛機效果

瀏覽:108日期:2024-04-23 11:57:34

本文實例為大家分享了js實現(xiàn)彈幕飛機效果的具體代碼,供大家參考,具體內(nèi)容如下

<!DOCTYPE html><html><head> <meta charset='utf-8'> <title></title> <style type='text/css'> body{ width: 70vw;/*長寬最好是obj的倍數(shù)*/ height: 90vh; border-width: 10px; border-style: solid; border-color: blue; line-height:600px;/*文本垂直居中*/ text-align: center;/*文本水平居中*/ position: relative;/*相對定位*/ left: 0px; top: 0px; } /*開場動畫*/ @-webkit-keyframes mymove { from {top:50vh;} to {top:100px;} } #obj{ -webkit-animation-name:mymove; -webkit-animation-duration:1s; -webkit-animation-timing-function:linear; position: absolute; left: 30vw; top: 50vh; width: 0px; height: 0px; border-left: 30px solid transparent; border-right: 30px solid transparent; border-bottom: 10px solid red; } div{ text-align: center; line-height:30px; } </style></head><body><!--彈幕飛機1.飛機可以移動2.屏幕頂部隨機彈幕雨3.彈幕雨碰到飛機-失敗4.記錄分數(shù)--> <div id=’obj’>飛機</div> <button id=’start’>開始</button> | <button onclick='stop()'>暫停</button> </body><script type='text/javascript'> var key = document.body.onkeydown =f; //注冊keydown事件處理函數(shù) var clientH= document.body.clientHeight;//獲取body高 var clientW= document.body.clientWidth;//獲取body寬 var obj=document.getElementById(’obj’);//飛機對象 var borderX=parseInt(getComputedStyle(obj,null).getPropertyValue(’border-left’)); var borderY=parseInt(getComputedStyle(obj,null).getPropertyValue(’border-bottom’)); var movePx=10;//飛機每次移動的距離 var speed=500;//雨下落速度 var distance=10;//雨下落距離 var rainleft=0;//彈幕雨x坐標(biāo) var raintop=0;//彈幕雨y坐標(biāo) //生成雨 function setrain(){ rainleft=parseInt(Math.random()*clientW); raintop=0;//parseInt(Math.random()*clientH); let div=document.createElement(’div’); div.className =’div’; div.style.borderRadius=’50%’; div.style.width=’6px’; div.style.height=’10px’; div.style.backgroundColor=’pink’; div.style.position = ’absolute’; div.style.left=rainleft + ’px’; div.style.top=raintop + ’px’; document.body.appendChild(div); } //雨下落 function downrain(){ var myTop=parseInt(getComputedStyle(obj,null).getPropertyValue(’top’));//獲取精靈y坐標(biāo) var myLeft=parseInt(getComputedStyle(obj,null).getPropertyValue(’left’));//獲取精靈x坐標(biāo) let div=document.getElementsByClassName(’div’); //遍歷all雨滴 for(let i=0;i<div.length-1;i++){ let divleft=parseInt(div[i].style.left); let divtop=parseInt(div[i].style.top); div[i].style.top=divtop+distance+’px’; //判斷飛機是否被擊中 if(Math.abs(divtop-myTop)<borderY && Math.abs(divleft-myLeft)<borderX){ console.log(’被擊中了 borderY:’+borderY+’ borderX:’+borderX); console.log(’------- myTop:’+myTop+’ myLeft:’+myLeft); console.log(’------- rainY:’+divtop+’ rainX:’+divleft); stop(); alert(’被擊中了’); } } } //清除落地的雨 function delrain(){ let div=document.getElementsByClassName(’div’); //遍歷all雨滴 for(let i=0;i<div.length-1;i++){ // div[i].style.left if(parseInt(div[i].style.top)>clientH){ div[i].parentNode.removeChild(div[i]); }; } } //開始 document.getElementById(’start’).onclick=start; function start(e){ var e = e || window.event; //標(biāo)準(zhǔn)化事件處理 inter=setInterval((setrain),speed); inter1=setInterval((downrain),speed); inter2=setInterval((delrain),speed); } //暫停 function stop(){ clearInterval(inter); clearInterval(inter1); clearInterval(inter2); } //移動飛機 function f (va) { var e = e || window.event; //標(biāo)準(zhǔn)化事件處理 let s = ’’;//val.type + ' ' + val.key; //獲取鍵盤事件類型和按下的值 let key=va.key; var myTop=parseInt(getComputedStyle(obj,null).getPropertyValue(’top’));//獲取精靈y坐標(biāo) parseInt(obj.style.top); var myLeft=parseInt(getComputedStyle(obj,null).getPropertyValue(’left’));//獲取精靈x坐標(biāo) parseInt(obj.style.left); var myWidth=borderX; var myHeight=borderY; var move=0; if(key==’w’){ move=myTop-movePx;//每次移動10 if(move<0 || move>clientH){ return false;//不能超過邊界 } obj.style.top=move+’px’; s=’上’; } if(key==’s’){ move=myTop+movePx; if(move<0 || move>clientH-myHeight){ return false; } obj.style.top=move+’px’; s=’下’; } if(key==’a’){ move=myLeft-movePx; if(move<0 || move>clientW){ return false; } obj.style.left=move+’px’; s=’左’; } if(key==’d’){ move=myLeft+movePx; if(move<0 || move>clientW-myWidth){ return false; } obj.style.left=move+’px’; s=’右’; } // obj.innerText=s;//設(shè)置文本 & 清楚之前的元素 // console.log(move+’ top:’+myTop+’ left:’+myLeft); } /*f() end--*/ </script></html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 软启动器-上海能曼电气有限公司 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 全钢实验台,实验室工作台厂家-无锡市辰之航装饰材料有限公司 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 菏泽商标注册_菏泽版权登记_商标申请代理_菏泽商标注册去哪里 | 杭州成人高考_浙江省成人高考网上报名| SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 外贸资讯网 - 洞悉全球贸易,把握市场先机 | 儋州在线-儋州招聘找工作、找房子、找对象,儋州综合生活信息门户! | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 福建自考_福建自学考试网 | 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 鲸鱼视觉 -数字展厅多媒体互动展示制作公司| 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 亿诺千企网-企业核心产品贸易 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 | 铜镍-康铜-锰铜-电阻合金-NC003 - 杭州兴宇合金有限公司 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 |