odoo/packs/odoo.v18/devs/kit_code/static/src/js/effect.js

71 lines
1.8 KiB
JavaScript
Raw Normal View History

const getAnimateCanvas =()=>{
const mycanvas = document.getElementById('codeStreamCanvas');
return mycanvas ;
}
const animate_coding_effect =()=> {
var H = window.innerHeight;
var W = window.innerWidth;
var mycanvas = getAnimateCanvas()
var ctx = mycanvas.getContext('2d');
mycanvas.height = H;
mycanvas.width = W;
var fontsize = 18;
var text = [];
var lie = Math.floor(W / fontsize);
var str = '01'
for (var i = 0; i < lie; i++) {
text.push(0);
}
ctx.font = fontsize + 'px ';
function draw() {
ctx.fillStyle = 'rgba(0,0,0,0.08)'
ctx.fillRect(0, 0, W, H);
ctx.fillStyle = randColor();
for (var i = 0; i < lie; i++) {
var index = Math.floor(Math.random() * str.length);
var x = Math.floor(fontsize * i)
var y = text[i] * fontsize
ctx.fillText(str[index], x, y);
if (y > H && Math.random() > 0.99) {
text[i] = 0
}
text[i]++;
}
}
function randColor() {
var r = Math.ceil(Math.random() * 155) + 100;
var g = Math.ceil(Math.random() * 155) + 100;
var b = Math.ceil(Math.random() * 155) + 100;
return 'rgb(' + r + ',' + g + ',' + b + ')'
}
var timer = setInterval(function() {
draw();
}, 1000 / 30)
}
const listenWindowSize = ()=>{
window.οnresize=function(){
var mycanvas = document.getElementById('mycanvas');
if (!mycanvas) return ;
var H = window.innerHeight;
var W = window.innerWidth;
mycanvas.height = H;
mycanvas.width = W;
}
}
window.onload=function(){
//console.log('🚀 effect.js,window.onload')
if (getAnimateCanvas()){
animate_coding_effect()
listenWindowSize();
}
}
//console.log('🚀 effect.js')