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() {
? ? ? ? ?//獲取畫布對象
? ? ? ? ?var canvas = document.getElementById("code_rain_canvas");
? ? ? ? ?//獲取畫布的上下文
? ? ? ? ?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;
? ? ? ? ?//每個文字的字體大小
? ? ? ? ?var fontSize = 12;
? ? ? ? ?//計(jì)算列
? ? ? ? ?var colunms = Math.floor(W / fontSize);
? ? ? ? ?//記錄每列文字的y軸坐標(biāo)
? ? ? ? ?var drops = [];
? ? ? ? ?//給每一個文字初始化一個起始點(diǎn)的位置
? ? ? ? ?for (var i = 0; i < colunms; i++) {
? ? ? ? ? ? ?drops.push(0);
? ? ? ? ?}
? ? ? ? ?//運(yùn)動的文字
? ? ? ? ?var str = "WELCOME TO WWW.ITRHX.COM";
? ? ? ? ?//4:fillText(str,x,y);原理就是去更改y的坐標(biāo)位置
? ? ? ? ?//繪畫的函數(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)制顏色
? ? ? ? ? ? ?//寫入畫布中
? ? ? ? ? ? ?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);
? ? ? ? ? ? ? ? ?//如果要改變時間,肯定就是改變每次他的起點(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);
? ? ?};展示效果:

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

