JS畫布動態實現黑客帝國背景效果
阿新 • • 發佈:2020-11-09
本文例項為大家分享了JS畫布動態實現黑客帝國背景效果的具體程式碼,供大家參考,具體內容如下
效果圖
完整程式碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> *{ padding:0; margin:0; } body{ overflow: hidden; } </style> </head> <body> <canvas id="mom" style="background:#111"></canvas> <script> window.onload = function(){ //獲取畫布物件 var canvas = document.getElementById("mom"); //獲取畫布的上下文 //getContext() 方法返回一個用於在畫布上繪圖的環境。 var context =canvas.getContext("2d"); //獲取瀏覽器螢幕的寬度和高度 var W = window.innerWidth; var H = window.innerHeight; //設定canvas的寬度和高度 canvas.width = W; canvas.height = H; //每個文字的字型大小 var fontSize = 16; //計算列 var colunms = Math.floor(W /fontSize); //記錄每列文字的y軸座標 var drops = []; //給每一個文字初始化一個起始點的位置 //計算每一個文字所謂座標 儲存y軸的座標 for(var i=0;i<colunms;i++){ drops.push(0); } //運動的文字 var str ="JavaScript function(){}"; //4:fillText(str,x,y);原理就是去更改y的座標位置 //繪畫的函式 function draw(){ context.fillStyle = "rgba(0,0.05)"; //fillRect() 方法繪製“已填色”的矩形。預設的填充顏色是黑色。 context.fillRect(0,W,H); //給字型設定樣式 context.font = "700 "+fontSize+"px 微軟雅黑"; //給字型新增顏色 context.fillStyle ="#00cc33";//可以rgb,hsl,標準色,十六進位制顏色 //寫入畫布中 for(var i=0;i<colunms;i++){ var index = Math.floor(Math.random() * str.length);//設定文字出發時間隨機 Math.floor(Math.random()*str.length)讓數組裡面的文字索引隨機出現 var x = i*fontSize; var y = drops[i] *fontSize;//也讓y軸方向也向下掉一個文字的距離 context.fillText(str[index],y); // //如果要改變時間,肯定就是改變每次他的起點 if(y >= canvas.height && Math.random()>0.99){ drops[i] = 0; } drops[i]++;//讓數組裡面的值每次加一,用於上面的y軸下掉 } }; //隨機顏色 function randColor(){ var r = Math.floor(Math.random() * 256); var g = Math.floor(Math.random() * 256); var b = Math.floor(Math.random() * 256); return "rgb("+r+","+g+","+b+")"; } draw(); setInterval(draw,20); }; </script> </body> </html>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。