利用JS打造黑客代碼雨效果
演示
技術(shù)棧
js實(shí)戰(zhàn)我們也寫過(guò)很多了,其中每次幾乎都用到畫布,大家知道它的重要性了吧。今天依舊用到它了。不過(guò)我們講過(guò)它的用法就不多說(shuō)了。 這次我們說(shuō)一下window.onload
window.onload() 方法用于在網(wǎng)頁(yè)加載完畢后立刻執(zhí)行的操作,即當(dāng) HTML 文檔加載完畢后,立刻執(zhí)行某個(gè)方法。
window.onload() 通常用于 元素,在頁(yè)面完全載入后(包括圖片、css文件等等)執(zhí)行腳本代碼。
只有一個(gè)要執(zhí)行的函數(shù)語(yǔ)法:
window.onload = funcRef;
因?yàn)?JavaScript 中的函數(shù)方法需要在 HTML 文檔渲染完成后才可以使用,如果沒(méi)有渲染完成,此時(shí)的 DOM 樹(shù)是不完整的,這樣在調(diào)用一些 JavaScript 代碼時(shí)就可能報(bào)出"undefined"錯(cuò)誤。
所以對(duì)于一些函數(shù)功能要用window.onload
window.onload 與 jQuery ready() 區(qū)別
window.onload = function () {}; // JavaScript $(document).ready(function () {}); // jQuery
源碼
畫布
<canvas id="mom" style="background:#111"></canvas>
js樣式設(shè)置
window.onload = function(){ //獲取畫布對(duì)象 var canvas = document.getElementById("mom"); //獲取畫布的上下文 //getContext() 方法返回一個(gè)用于在畫布上繪圖的環(huán)境。 var context =canvas.getContext("2d"); //獲取瀏覽器屏幕的寬度和高度 var W = window.innerWidth; var H = window.innerHeight; //設(shè)置canvas的寬度和高度 canvas.width = W; canvas.height = H; //每個(gè)文字的字體大小 var fontSize = 16; //計(jì)算列 var colunms = Math.floor(W /fontSize); //記錄每列文字的y軸坐標(biāo) var drops = []; //給每一個(gè)文字初始化一個(gè)起始點(diǎn)的位置 //計(jì)算每一個(gè)文字所謂坐標(biāo) 存儲(chǔ)y軸的坐標(biāo) for(var i=0;i<colunms;i++){ drops.push(0); } //運(yùn)動(dòng)的文字 var str ="JavaScript function(){}"; //4:fillText(str,x,y);原理就是去更改y的坐標(biāo)位置 //繪畫的函數(shù) function draw(){ context.fillStyle = "rgba(0,0,0,0.05)"; //fillRect() 方法繪制“已填色”的矩形。默認(rèn)的填充顏色是黑色。 context.fillRect(0,0,W,H); //給字體設(shè)置樣式 context.font = "700 "+fontSize+"px 微軟雅黑"; //給字體添加顏色 context.fillStyle ="#00cc33";//可以rgb,hsl, 標(biāo)準(zhǔn)色,十六進(jìn)制顏色 //寫入畫布中 for(var i=0;i<colunms;i++){ var index = Math.floor(Math.random() * str.length);//設(shè)置文字出發(fā)時(shí)間隨機(jī) Math.floor(Math.random()*str.length)讓數(shù)組里面的文字索引隨機(jī)出現(xiàn) var x = i*fontSize; var y = drops[i] *fontSize;//也讓y軸方向也向下掉一個(gè)文字的距離 context.fillText(str[index],x,y); // //如果要改變時(shí)間,肯定就是改變每次他的起點(diǎn) if(y >= canvas.height && Math.random()>0.99){ drops[i] = 0; } drops[i]++;//讓數(shù)組里面的值每次加一,用于上面的y軸下掉 } }; //隨機(jī)顏色 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); };
以上就是利用JS打造黑客代碼雨效果的詳細(xì)內(nèi)容,更多關(guān)于JS代碼雨的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
在JavaScript中驗(yàn)證URL的新方法(2023版)
在JavaScript領(lǐng)域,URL 驗(yàn)證方面有了新消息!多年來(lái),人們一直在討論JavaScript沒(méi)有一種簡(jiǎn)便的方法來(lái)驗(yàn)證 URL,現(xiàn)在有了一種新方法URL.canParse(),需要的朋友可以參考下2023-09-09詳解TypeScript2.0標(biāo)記聯(lián)合類型
這篇文章主要介紹了TypeScript2.0標(biāo)記聯(lián)合類型,對(duì)TS感興趣的同學(xué),可以參考下2021-05-05詳解JavaScript實(shí)現(xiàn)監(jiān)聽(tīng)路由變化
前端實(shí)現(xiàn)路由變化主要有兩種方式,本文主要介紹了這兩種方法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08禁用Enter鍵表單自動(dòng)提交實(shí)現(xiàn)代碼
這篇文章主要介紹了禁用Enter鍵表單自動(dòng)提交實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-05-05學(xué)習(xí)使用bootstrap3柵格系統(tǒng)
這篇文章主要教會(huì)大家學(xué)習(xí)使用bootstrap3柵格系統(tǒng),bootstrap開(kāi)發(fā)環(huán)境搭建,還介紹了柵格系統(tǒng)的類型,感興趣的小伙伴們可以參考一下2016-04-04JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)端播放攝像頭實(shí)時(shí)畫面
這篇文章主要介紹了如何利用JavaScript實(shí)現(xiàn)在網(wǎng)頁(yè)端播放局域網(wǎng)(不能上云)或是廣域網(wǎng)的攝像頭的實(shí)時(shí)畫面,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-02-02