<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
介紹一下畫布吧:
HTML5 標籤用於繪製影象(通過指令碼,通常是 JavaScript)。
不過, 元素本身並沒有繪製能力(它僅僅是圖形的容器) - 您必須使用指令碼來完成實際的繪圖任務。
getContext() 方法可返回一個物件,該物件提供了用於在畫布上繪圖的方法和屬性
它的方法挺多的大家可以去搜一下我就說幾個常用的:
<canvas id="canvas" style="position: absolute; height: 100%; width:100%;"></canvas>
跟隨滑鼠移動
window.onmousemove=function (e) { mousePos[0]=e.clientX; mousePos[1]=e.clientY; maxspeedx=(e.clientX-canvasEl.clientWidth/2)/(canvasEl.clientWidth/2); }
建立雨線
function createLine(e) { var temp= 0.25*( 50+Math.random()*100); var myline={ speed:5.5*(Math.random()*6+3), die:false, posx:e, posy:-200, h:temp, color:getRgb(Math.floor(temp*255/75),Math.floor(temp*255/75),Math.floor(temp*255/75)) }; linelist.push(myline); }
雨點的重新整理
function update() { if(dropList.length>0) { dropList.forEach(function (e) { e.vx=e.vx+(speedx)/2; e.posx=e.posx+e.vx; e.vy=e.vy+gravity; e.posy=e.posy+e.vy; if(e.posy>canvasEl.clientHeight) { e.die=true; } }); } for(var i=dropList.length-1;i>=0;i--) { //delite die if(dropList[i].die){ dropList.splice(i,1); } } speedx=speedx+(maxspeedx-speedx)/50; if(Math.random()>0) { createLine(Math.random()*2*canvasEl.width-(0.5*canvasEl.width)); createLine(Math.random()*2*canvasEl.width-(0.5*canvasEl.width)); createLine(Math.random()*2*canvasEl.width-(0.5*canvasEl.width)); } var mydeadline=canvasEl.clientHeight- Math.random()*canvasEl.clientHeight/5; linelist.forEach(function (e) { var dis=Math.sqrt( ((e.posx+speedx*e.h)-mousePos[0])*((e.posx+speedx*e.h)-mousePos[0])+(e.posy+e.h-mousePos[1])*(e.posy+e.h-mousePos[1])); if(dis<35) { madedrops(e.posx+speedx*e.h,e.posy+e.h); e.die=true; } if((e.posy+e.h)>mydeadline) { if(Math.random()>0.85) { madedrops(e.posx+speedx*e.h,e.posy+e.h); e.die=true; } } if(e.posy>=canvasEl.clientHeight) { e.die=true; }else{ e.posy=e.posy+e.speed; e.posx=e.posx+(e.speed*speedx); } }); for(var i=linelist.length-1;i>=0;i--) { if(linelist[i].die){ linelist.splice(i,1); } } render(); window.requestAnimationFrame(update); }
雨點的渲染
function render() { ctx.fillStyle = backgroundColor; ctx.fillRect(0, 0, canvasEl.width, canvasEl.height); linelist.forEach( function (line) { ctx.strokeStyle =line.color; ctx.lineWidth=4.5; ctx.beginPath(); ctx.moveTo(line.posx,line.posy); ctx.lineTo(line.posx+speedx*line.h,line.posy+line.h); ctx.stroke(); }); ctx.lineWidth=1; ctx.strokeStyle = "#fff"; dropList.forEach(function (e) { ctx.beginPath(); ctx.arc(e.posx,e.posy,e.radius,Math.random()*Math.PI*2,1*Math.PI); ctx.stroke(); }); }
以上就是基於JavaScript實現動態雨滴特效的詳細內容,更多關於JavaScript動態雨滴特效的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45