In diesem Artikel wird hauptsächlich Canvas vorgestellt und vorgestellt, um schillernde Partikelbewegungseffekte zu erzielen (Partikel erzeugen Text). Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz angeben. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
Gehen Sie direkt zum Code. Wenn Sie ihn nicht verstehen, können Sie die Codekommentare lesen. Sie werden wahrscheinlich die allgemeine Idee verstehen.
HTML-Code
HTML-Code ist nicht viel, nur ein paar Bedienelemente. Hier ist es auf einen Blick leicht zu verstehen. Sie müssen nicht zu viele Worte verschwenden. Werfen wir einen Blick auf den Protagonisten-JavaScript-Code dieses Artikels. Bevor wir uns jedoch den Code ansehen, können wir uns genauso gut die Idee anhören, wie dieser Effekt erzielt werden kann:
Zuerst müssen wir eine Reihe von Extras (Partikel) generieren.
Hängen Sie die relevanten Parameter jedes Partikels an einige seiner eigenen Attribute, da jedes Partikel seine eigene Flugbahn hat >
function Circle() { var This = this; this.init(); this.generalRandomParam(); this.drawCircles(); this.ballAnimate(); this.getUserText(); // 窗口改变大小后,生计算并获取画面 window.onresize = function(){ This.stateW = document.body.offsetWidth; This.stateH = document.body.offsetHeight; This.iCanvasW = This.iCanvas.width = This.stateW; This.iCanvasH = This.iCanvas.height = This.stateH; This.ctx = This.iCanvas.getContext("2d"); } } // 初始化 Circle.prototype.init = function(){ //父元素宽高 this.stateW = document.body.offsetWidth; this.stateH = document.body.offsetHeight; this.iCanvas = document.createElement("canvas"); // 设置Canvas 与父元素同宽高 this.iCanvasW = this.iCanvas.width = this.stateW; this.iCanvasH = this.iCanvas.height = this.stateH; // 获取 2d 绘画环境 this.ctx = this.iCanvas.getContext("2d"); // 插入到 body 元素中 document.body.appendChild(this.iCanvas); this.iCanvasCalculate = document.createElement("canvas"); // 用于保存计算文字宽度的画布 this.mCtx = this.iCanvasCalculate.getContext("2d"); this.mCtx.font = "128px 微软雅黑"; this.iCanvasPixel = document.createElement("canvas"); this.iCanvasPixel.setAttribute("style","position:absolute;top:0;left:0;"); this.pCtx = null; // 用于绘画文字的画布 // 随机生成圆的数量 this.ballNumber = ramdomNumber(1000, 2000); // 保存所有小球的数组 this.balls = []; // 保存动画中最后一个停止运动的小球 this.animte = null; this.imageData = null; this.textWidth = 0; // 保存生成文字的宽度 this.textHeight = 150; // 保存生成文字的高度 this.inputText = ""; // 保存用户输入的内容 this.actionCount = 0; this.ballActor = []; // 保存生成文字的粒子 this.actorNumber = 0; // 保存生成文字的粒子数量 this.backType = "back"; // 归位 this.backDynamics = ""; // 动画效果 this.isPlay = false; // 标识(在生成文字过程中,不能再生成) } // 渲染出所有圆 Circle.prototype.drawCircles = function () { for(var i=0;ithis.iCanvasW-ball.size || ball.x this.iCanvasW-ball.size){ ball.x = this.iCanvasW-ball.size; }else{ ball.x = ball.size; } ball.speedX = - ball.speedX; } if(ball.y>this.iCanvasH-ball.size || ball.y this.iCanvasH-ball.size){ ball.y = this.iCanvasH-ball.size; }else{ ball.y = ball.size; } ball.speedY = - ball.speedY; } } } // 开始动画 Circle.prototype.ballAnimate = function(){ var This = this; var animateFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; (function move(){ animte = animateFrame(move); This.ctx.clearRect(0, 0, This.iCanvasW, This.iCanvasH); This.changeposition(); for(var i=0;i Nach dem Login kopieren
Tutorial zur Verwendung von Canvas in HTML5 kombiniert mit Formeln zum Zeichnen von Partikelbewegungen_HTML5-Tutorial-Fähigkeiten
Das obige ist der detaillierte Inhalt vonCanvas realisiert atemberaubende Partikelbewegungseffekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!