JS實(shí)現(xiàn)代碼雨特效
本文實(shí)例為大家分享了JS實(shí)現(xiàn)代碼雨特效的具體代碼,供大家參考,具體內(nèi)容如下
html代碼
<canvas id="code_rain_canvas" width="1440" height="900"></canvas>
js 代碼
window.onload = function() {
? ? ? ? ?//獲取畫(huà)布對(duì)象
? ? ? ? ?var canvas = document.getElementById("code_rain_canvas");
? ? ? ? ?//獲取畫(huà)布的上下文
? ? ? ? ?var context = canvas.getContext("2d");
? ? ? ? ?var s = window.screen;
? ? ? ? ?var W = canvas.width = s.width;
? ? ? ? ?var H = canvas.height;
? ? ? ? ?//獲取瀏覽器屏幕的寬度和高度
? ? ? ? ?//var W = window.innerWidth;
? ? ? ? ?//var H = window.innerHeight;
? ? ? ? ?//設(shè)置canvas的寬度和高度
? ? ? ? ?canvas.width = W;
? ? ? ? ?canvas.height = H;
? ? ? ? ?//每個(gè)文字的字體大小
? ? ? ? ?var fontSize = 12;
? ? ? ? ?//計(jì)算列
? ? ? ? ?var colunms = Math.floor(W / fontSize);
? ? ? ? ?//記錄每列文字的y軸坐標(biāo)
? ? ? ? ?var drops = [];
? ? ? ? ?//給每一個(gè)文字初始化一個(gè)起始點(diǎn)的位置
? ? ? ? ?for (var i = 0; i < colunms; i++) {
? ? ? ? ? ? ?drops.push(0);
? ? ? ? ?}
? ? ? ? ?//運(yùn)動(dòng)的文字
? ? ? ? ?var str = "WELCOME TO WWW.ITRHX.COM";
? ? ? ? ?//4:fillText(str,x,y);原理就是去更改y的坐標(biāo)位置
? ? ? ? ?//繪畫(huà)的函數(shù)
? ? ? ? ?function draw() {
? ? ? ? ? ? ?context.fillStyle = "rgba(238,238,238,.08)"; //遮蓋層
? ? ? ? ? ? ?context.fillRect(0, 0, W, H);
? ? ? ? ? ? ?//給字體設(shè)置樣式
? ? ? ? ? ? ?context.font = "600 " + fontSize + "px ?Georgia";
? ? ? ? ? ? ?//給字體添加顏色
? ? ? ? ? ? ?context.fillStyle = ["#33B5E5", "#0099CC", "#AA66CC", "#9933CC", "#99CC00", "#669900", "#FFBB33", "#FF8800", "#FF4444", "#CC0000"][parseInt(Math.random() * 10)]; //randColor();可以rgb,hsl, 標(biāo)準(zhǔn)色,十六進(jìn)制顏色
? ? ? ? ? ? ?//寫(xiě)入畫(huà)布中
? ? ? ? ? ? ?for (var i = 0; i < colunms; i++) {
? ? ? ? ? ? ? ? ?var index = Math.floor(Math.random() * str.length);
? ? ? ? ? ? ? ? ?var x = i * fontSize;
? ? ? ? ? ? ? ? ?var y = drops[i] * fontSize;
? ? ? ? ? ? ? ? ?context.fillText(str[index], x, y);
? ? ? ? ? ? ? ? ?//如果要改變時(shí)間,肯定就是改變每次他的起點(diǎn)
? ? ? ? ? ? ? ? ?if (y >= canvas.height && Math.random() > 0.99) {
? ? ? ? ? ? ? ? ? ? ?drops[i] = 0;
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ?drops[i]++;
? ? ? ? ? ? ?}
? ? ? ? ?};
? ? ? ? ?function randColor() { //隨機(jī)顏色
? ? ? ? ? ? ?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, 35);
? ? ?};展示效果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序中如何使用flyio封裝網(wǎng)絡(luò)請(qǐng)求
這篇文章主要介紹了微信小程序中如何使用flyio封裝網(wǎng)絡(luò)請(qǐng)求,F(xiàn)ly.js 通過(guò)在不同 JavaScript 運(yùn)行時(shí)通過(guò)在底層切換不同的 Http Engine來(lái)實(shí)現(xiàn)多環(huán)境支持,但同時(shí)對(duì)用戶層提供統(tǒng)一、標(biāo)準(zhǔn)的Promise API,需要的朋友可以參考下2019-07-07
輸入密碼時(shí)檢測(cè)大寫(xiě)是否鎖定的js代碼
網(wǎng)站登錄為了更好的用戶體驗(yàn)都會(huì)在輸入密碼的時(shí)候檢測(cè)是否開(kāi)啟大寫(xiě)。提醒用戶。2011-02-02
詳解webpack-dev-server的簡(jiǎn)單使用
本篇文章主要介紹了詳解webpack-dev-server的簡(jiǎn)單使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
BootStrap table實(shí)現(xiàn)表格行拖拽效果
這篇文章主要為大家詳細(xì)介紹了BootStrap table實(shí)現(xiàn)表格行拖拽效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
javascript中Date format(js日期格式化)方法小結(jié)
這篇文章主要介紹了javascript中Date format,即js日期格式化的方法.實(shí)例總結(jié)了三種常見(jiàn)的JavaScript日期格式化技巧,需要的朋友可以參考下2015-12-12
easywasmplayer實(shí)現(xiàn)視頻流播放示例詳解
這篇文章主要為大家介紹了easywasmplayer實(shí)現(xiàn)視頻流播放示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
js獲取UserControl內(nèi)容為拼html時(shí)提供方便
js獲取UserControl內(nèi)容時(shí)無(wú)法測(cè)試通過(guò),原來(lái)是繼承了Page 然后使用VerifyRenderingInServerForm驗(yàn)證2014-11-11
JavaScript操作Oracle數(shù)據(jù)庫(kù)示例
這篇文章主要介紹了JavaScript操作Oracle數(shù)據(jù)庫(kù)示例,本文使用ActiveXObject實(shí)現(xiàn)訪問(wèn)Oracle數(shù)據(jù)庫(kù),需要的朋友可以參考下2015-03-03
JS實(shí)現(xiàn)的網(wǎng)頁(yè)倒計(jì)時(shí)數(shù)字時(shí)鐘效果
這篇文章主要介紹了JS實(shí)現(xiàn)的網(wǎng)頁(yè)倒計(jì)時(shí)數(shù)字時(shí)鐘效果,是一款非常實(shí)用的javascript倒計(jì)時(shí)特效,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

