html5实现黑客帝国数字矩阵效果

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Martrix</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #000;
            overflow: hidden;
            color:#e6922a;
        }
    </style>
</head>
<body>
    <canvas id="canvas"></canvas>
    
    <script type="text/javascript">
        var canvas = document.getElementById("canvas"),
            context = canvas.getContext("2d");

        var fontSize = 14,
            listText = "0123456789ABCDEF".split(""),
            column, row,
            listColumn = [];

        function draw() {
            //画背景
            context.fillStyle = "rgba(0, 0, 0, 0.05)";
            context.fillRect(0, 0, canvas.width, canvas.height);
            context.save();

            //画Logo
            context.shadowColor = "#074425";
            context.shadowBlur = parseInt(Math.random() * 40 + 1);
            context.font = "bold 36px Arial";
            context.fillStyle = "#eefbf5";
            context.fillText("MARTRIX", (canvas.width / 2 - context.measureText("MARTRIX").width / 2), canvas.height - 200);
            context.fillText("REVOLUTIONS", (canvas.width / 2 - context.measureText("REVOLUTIONS").width / 2), canvas.height - 150);
            context.font = "16px Microsoft Yahei";
            context.fillText("HACK MATRIX MADE BY XH", (canvas.width / 2 - context.measureText("HACK MATRIX MADE BY XH").width / 2), canvas.height - 100);

            //画代码
            context.restore();
            context.font = "normal " + fontSize + "px Arial";
            context.fillStyle = "#12ee46";
            for (var i = 0; i < column; i++) {
                if (Math.random() > 0.5) {
                    var str = listText[parseInt(Math.random() * listText.length)];
                    context.fillText(str, i * fontSize, listColumn[i] * fontSize);
                    listColumn[i] += 1;
                    if (listColumn[i] >= row) {
                        listColumn[i] = 0;
                    }
                }
            }
        }

        function resize() {
            canvas.width = window.innerWidth - 3;
            canvas.height = window.innerHeight - 3;

            column = canvas.width / fontSize,
            row = canvas.height / fontSize;

            for (var i = 0; i < column; i++) {
                listColumn[i] = 1;
            }
        }

        window.addEventListener("resize", resize);

        canvas.addEventListener("mousedown", function () {
            clearInterval(timer);
            timer = setInterval(draw, 20);
        });

        canvas.addEventListener("mouseup", function () {
            clearInterval(timer);
            timer = setInterval(draw, 40);
        });

        resize();
        var timer = setInterval(draw, 40);

    </script>
</body>

</html>

时间: 2024-09-15 20:02:01

html5实现黑客帝国数字矩阵效果的相关文章

html5各种页面切换效果和模态对话框用法总结

 本文详细总结了html5各种页面切换效果和模态对话框用法.分享给大家供大家参考.具体分析如下: 页面动画: data-transition 属性可以定义页面切换是的动画效果. 例如:<a href="index.html" data-transition="pop">I'll pop</a> data-transition 参数表: 参数说明 slide 从右侧向左滑入页面 slideup 从底部向上滑入 slidedown 从上向下滑入

jQuery模拟黑客帝国矩阵效果实例_jquery

本文实例讲述了jQuery模拟黑客帝国矩阵效果的方法.分享给大家供大家参考.具体实现方法如下: html部分如下: <div id="container"> <div style="width:10px; word-break :break-all"> 10001001110010010010000 </div> <div style="width:10px; word-break :break-all;margi

HTML5实现刮奖效果

原文:HTML5实现刮奖效果 要实现刮奖效果,最重要的是要找到一种方法:当刮开上层的涂层是就能看到下层的结果.而HTML5的canvas API中有一个属性globalCompositeOperation,这个属性有多个值,而实现刮奖效果要用到的值就是destination-out.意思就是:在已有内容和新图形不重叠的地方,已有内容保留,所有其他内容成为透明.这样可能不好理解,后面实现的时候会解释.有了globalCompositeOperation这个属性,实现过程就很简单了. 我们需要有两个

JavaScript html5 canvas绘制时钟效果_javascript技巧

本文实例讲述了JavaScript+html5 canvas绘制时钟效果.分享给大家供大家参考,具体如下:  HTML部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.

JavaScript html5 canvas绘制时钟效果(二)_javascript技巧

 对于H5来说,canvas可以说是它最有特色的一个地方了,有了它之后我们可以随意的在网页上画各种各样的图形,做一些小游戏啊什么的.canvas这个标签的用法,在网上也有特别多的教程了,这里就不作介绍了.今天我们就用canvas来做一个小小的时钟.完整的代码在这里https://github.com/wwervin72/HTML5-Clock. 那么首先在这个页面里面我使用了两个canvas,一个用来绘制静态的时钟表盘和刻度,另一个用来绘制时钟的三个指针,然后用定位让他们重合到一起.然后这里没什

HTML5 实现小车动画效果(Canvas/CSS3/JQuery)

HTML5正在变得越来越流行.在这个移动设备日益增长的时代,对来自Adobe的Flash插件的改造需求也正在快速增长.因为就在最近,Adobe宣布Flash将不再支持移动设备.这意味着,Adobe自身也认为对移动设备来讲HTML5是一项重要的技术.而桌面系统的改变也是迟早的事. HTML的一大劣势就是对于多媒体技术支持的缺乏.在HTML中,你无法直接显示一个视频或在屏幕上绘画.在HTML5中,随着<video>与<canvas>元素的引进.这些元素给予开发者直接使用"纯粹

CSS3+HTML5特效 - 上下滑动效果

先看看效果,把鼠标移上去看看. back front 1. 本实例需要以下元素:     a. 外容器 box     b. 内容器 border     c. 默认显示内容 front     d. 滑动内容 back 2. 外容器BOX的Height为200px,Width为200px: .box1{   position: relative;   top: 100px;   left: 100px;   width: 200px;   height: 200px;   border: 1p

利用HTML5制作图片放大效果的例子

HTML5有一个新的属性,contenteditable,它可以应用于任何元件,使得它可以直接在浏览器窗口中编辑.想与一个预定义的值的文本输入,但它还可以从字面上任何元素.表单元素如文本输入支持:重点伪类,它允许我们风格的元素时,点击后或导航.给人一种元素contenteditable属性意味着它现在也支持:重点伪类,开辟了一些有趣的可能性! 我们将利用这个小把戏来扩大图像(就像一个没有覆盖灯箱)在一些内容. HTML5代码 HTML5有很好的元素包括标题图像. <section class=&qu

利用HTML5的画布Canvas实现刮刮卡效果_javascript技巧

先给大家展示效果: 查看演示   源码下载 你玩过刮刮卡么?一不小心可以中奖的那种.今天我给大家分享一个基于HTML5技术实现的刮刮卡效果,在PC上只需按住鼠标,在手机上你只需按住指头,轻轻刮去图层就可以模拟真实的刮奖效果. 我们利用HTML5的画布Canvas,结合其提供的API,在Canvas元素上绘制一个灰色蒙层,然后通过检测用户鼠标移到和手势来绘制一个透明的图形,这样就能看到Canvas背景下的真实图片,就达到刮刮卡效果. HTML 我们只需要在页面中加入canvas标签元素,其他的就看