从天飘落的文字

<!DOCTYPE html>
<html>
<head lang="zh-CN">
    <meta charset="UTF-8">
    <title>Matrix</title>
    <style>
        * { margin: 0; padding: 0; }
        body { font-family: Impact; background: #333; }
        h1 {
            width: 800px;
            color: #666;
            text-shadow: 0 0 4px #000;
            font-size: 128px;
            text-align: center;
            text-transform: uppercase;
            position: fixed;
            left: calc(50% - 400px);
            top: calc(50% - 100px);
        }
        .wrap {
            position: relative;
            background: green;
        }
        .char {
            color: #0c0;
            font-size: 36px;
            position: fixed;
            top: 0;
            left: 0;
            /*transition: all 2s;*/
        }
    </style>
</head>
<body>
    <h1>Matrix</h1>
    <!--<div id="a" class="char">A</div>-->
    <script>
        function $$(id){
            return document.querySelector("#" + id);
        }
        function rand(min, max){
            return Math.round( Math.random() * (max - min) + min);
        }
        function randChar(n){
            var chs = "abcdefghijklmnopqrstuvwxyz0123456789#@!$%&*+=?";
            var str = (n > 1)? chs[rand(0, 25)] : chs[rand(0, chs.length - 1)];
            for(var i = 0;i < n - 1;i++){
                str += chs[rand(0, 35)];
            }
            return str;
        }
        var bw = document.documentElement.clientWidth;
        var bh = document.documentElement.clientHeight;
        function Matrix() {
            this.obj = null;
            this.id = randChar(16);       // 随机ID
            this.w = rand(18, 48);        // 字符宽度 = 字体大小
            this.x = rand(0, bw - this.w);// 随机水平位置
            this.y = -100;
            this.d = 0;
            this.sy = rand(5, 20);        // 随机下落速度
            this.sd = rand(0, 1) ? rand(5, 40) : -rand(5, 40); // 带方向的旋转速度
            this.ch = randChar(1);        // 随机字符
            this.init = function() {
                this.obj = document.createElement("div");
                this.obj.className = "char";
                this.obj.id = this.id;
                document.querySelector("body").appendChild(this.obj);
                this.obj = $$(this.id);
                this.run(); // 启动 start!
            }
            this.run = function() {
                var _this = this;
                this.timer = setInterval(function(){
                    _this.y += _this.sy;   // 新的下落位置
                    _this.d += _this.sd;
                    // 新的旋转角度(带+顺-逆方向)
                    if (_this.y > bh) {
                        _this.w = rand(18, 48);        // 字符宽度 = 字体大小
                        _this.x = rand(0, bw - _this.w);// 随机水平位置
                        _this.y = -100;                // 画面外:顶部
                        _this.sy = rand(5, 20);        // 随机下落速度
                        _this.sd = rand(0, 1) ? rand(5, 40) : -rand(5, 40);
                        _this.ch = randChar(1);        // 随机字符
                    }
                    _this.obj.innerHTML = _this.ch;
                    _this.obj.style.left = _this.x + "px";
                    _this.obj.style.top = _this.y + "px";
                    _this.obj.style.fontSize = _this.w + "px";
                    _this.obj.style.transform = "rotate(" + _this.d + "deg)";
                    console.log(_this.d);
                }, 50);
            }
            this.init();
        }
        var max = 50;
        for(var i = 0;i<max;i++){
            new Matrix();
        }

    </script>
</body>
</html>

转载于:https://my.oschina.net/u/3001240/blog/790442

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值