zoukankan      html  css  js  c++  java
  • 黑客帝国雨效果JS

    黑客帝国雨效果JS。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        *{margin: 0;padding: 0;}
        body{overflow: hidden;}
        canvas{background: #111;}
        </style>
    </head>
    <body>
        <canvas id="canvas"></canvas>
        <script>
            var canvas = document.getElementById("canvas");
            var context = canvas.getContext("2d");
    
            var W = window.innerWidth;
            var H = window.innerHeight;
    
            canvas.width = W;
            canvas.height = H;
    
            var fontSize = 16;
            //计算列
            var colunm = Math.floor(W/fontSize);
            //console.log(colunm);
            //存储Y值
            var drops = [];
    
            for(var i = 0;i<colunm;i++){
                drops[i] = 1;
            }
            //console.log(...drops)
            var str = "Welcome JavaScript";
    
            //let tempRandom = Math.random()*str.length;
            //console.log(tempRandom,Math.floor(tempRandom))
            //把文字画到屏幕上
            function draw(){
                context.fillStyle = "rgba(0,0,0,0.05)";//文字随机出现的背景
                context.fillRect( 0, 0, W, H);
                context.font = "700 " + fontSize + "px ARIAL";
                context.fillStyle = "#00cc33";
                //context.fillStyle = randColor();
                //console.log("你好");
                for(var i = 0; i<colunm; i++){
                    //让字符串中的内容随机出现
                    var index = Math.floor(Math.random()*str.length);
                    var x = i*fontSize;
                    var y = drops[i]*fontSize;
                    context.fillText(str[index],x,y);
                    console.log(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,20);
        </script>
    </body>
    </html>

    效果截图:

  • 相关阅读:
    全面兼容的Iframe 与父页面交互操作
    Windows Phone 8.1 新特性
    android手电筒源码
    最新android版QQ布局效果 v4.7.0全新UI源码
    点击弹出动态菜单效果ios源码
    本app(仿手机支付宝界面)ios源码
    WP应用开发笔记
    关于移动,爱游,联通三家运营商付费SDK的融合方案
    cocos2d-x学习总结01引言
    新站seo如何进行站内优化
  • 原文地址:https://www.cnblogs.com/liubeimeng/p/10618388.html
Copyright © 2011-2022 走看看