JS實現(xiàn)代碼雨特效
更新時間:2022年01月16日 15:41:45 作者:木子歡兒
這篇文章主要為大家詳細介紹了JS實現(xiàn)代碼雨特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JS實現(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; ? ? ? ? ?//設置canvas的寬度和高度 ? ? ? ? ?canvas.width = W; ? ? ? ? ?canvas.height = H; ? ? ? ? ?//每個文字的字體大小 ? ? ? ? ?var fontSize = 12; ? ? ? ? ?//計算列 ? ? ? ? ?var colunms = Math.floor(W / fontSize); ? ? ? ? ?//記錄每列文字的y軸坐標 ? ? ? ? ?var drops = []; ? ? ? ? ?//給每一個文字初始化一個起始點的位置 ? ? ? ? ?for (var i = 0; i < colunms; i++) { ? ? ? ? ? ? ?drops.push(0); ? ? ? ? ?} ? ? ? ? ?//運動的文字 ? ? ? ? ?var str = "WELCOME TO WWW.ITRHX.COM"; ? ? ? ? ?//4:fillText(str,x,y);原理就是去更改y的坐標位置 ? ? ? ? ?//繪畫的函數(shù) ? ? ? ? ?function draw() { ? ? ? ? ? ? ?context.fillStyle = "rgba(238,238,238,.08)"; //遮蓋層 ? ? ? ? ? ? ?context.fillRect(0, 0, W, H); ? ? ? ? ? ? ?//給字體設置樣式 ? ? ? ? ? ? ?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, 標準色,十六進制顏色 ? ? ? ? ? ? ?//寫入畫布中 ? ? ? ? ? ? ?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); ? ? ? ? ? ? ? ? ?//如果要改變時間,肯定就是改變每次他的起點 ? ? ? ? ? ? ? ? ?if (y >= canvas.height && Math.random() > 0.99) { ? ? ? ? ? ? ? ? ? ? ?drops[i] = 0; ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? ?drops[i]++; ? ? ? ? ? ? ?} ? ? ? ? ?}; ? ? ? ? ?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, 35); ? ? ?};
展示效果:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JS中script標簽defer和async屬性的區(qū)別詳解
這篇文章主要介紹了JS中script標簽defer和async屬性的區(qū)別詳解的相關資料,需要的朋友可以參考下2016-08-08JavaScript執(zhí)行環(huán)境及作用域鏈實例分析
這篇文章主要介紹了JavaScript執(zhí)行環(huán)境及作用域鏈,結合實例形式分析了JavaScript執(zhí)行環(huán)境及作用域鏈的相關概念、功能與使用技巧,需要的朋友可以參考下2018-08-08JS中使用Array函數(shù)shift和pop創(chuàng)建可忽略參數(shù)的例子
這篇文章主要介紹了JS中使用Array函數(shù)shift和pop創(chuàng)建可忽略參數(shù)的例子,這是一種比較高級的應用,需要的朋友可以參考下2014-05-05微信小程序第三方框架對比 之 wepy / mpvue / taro
這篇文章主要介紹了小程序第三方框架對比 ( wepy / mpvue / taro ) 分析,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-04-04JS實現(xiàn)放大、縮小及拖拽圖片的方法【可兼容IE、火狐】
這篇文章主要介紹了JS實現(xiàn)放大、縮小及拖拽圖片的方法,可兼容IE及火狐等瀏覽器,通過javascript自定義函數(shù)實現(xiàn)針對圖片的放大、縮小及拖拽等功能,涉及javascript動態(tài)操作頁面元素的相關技巧,需要的朋友可以參考下2016-08-08