canvas,文字雨效果

 var canvas = document.getElementById("myCanvas");
    //获取宽度和高度
    var j = 0
    var dd = canvas.getBoundingClientRect();
    var cth = dd.height; //盒子高度
    var ctw = dd.width; //盒子宽度
    var fontSize = 20; //文字大小
    var num1 = Math.floor(ctw / fontSize); //每行能显示的文字数量
    var charIndex = [] // y轴随机数
    for(let s = 0;s<num1;s++){
      charIndex.push(Math.floor(Math.random()*10))
    }
    var num2 = Math.floor(cth / fontSize);
    function draw(y) {
      var ctx = canvas.getContext("2d");
      //颜色透明度
      ctx.fillStyle = "rgba(0,0,0,0.1)";
      ctx.fillRect(0, 0, ctw, cth);
      ctx.fillStyle = "#64cae4";
      //设置字体大小
      ctx.font = "20px Arial";
      ctx.textBaseline = "top";
      for (var i = 0; i < num1; i++) {
        var tetx = getStrRandom()
        let x = i * fontSize;
        let y = charIndex[i] * fontSize
        ctx.fillText(tetx, x, y);
        if(y>cth){
          charIndex[i] = 0
        }else{
          charIndex[i] ++ 
        }
      }
    }
    // 随机字符
    function getStrRandom(){
      var str = '君不见黄河之水天上来奔流到海不复回君不见高堂明镜悲白发朝如青丝暮成雪人生得意须尽欢莫使金樽空对月天生我材必有用千金散尽还复来烹羊宰牛且为乐会须一饮三百杯岑夫子丹丘生将进酒杯莫停与君歌一曲请君为我倾耳听钟鼓馔玉不足贵但愿长醉不愿醒古来圣贤皆寂寞惟有饮者留其名陈王昔时宴平乐斗酒十千恣欢谑主人何为言少钱径须沽取对君酌五花马千金裘呼儿将出换美酒与尔同销万古愁'
      return str[Math.floor(Math.random() * str.length)]
    }
  setInterval(()=>{
      draw();
  },100)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值