zoukankan      html  css  js  c++  java
  • <canvas>简单学习

    前段时间复习HTML5标签时看见<canvas>这个标签,在网上搜了一下发现是一图形容器类似画板。

    做了一些简单的案例;

    1,在canvas画布上通过上下左右控制方块移动

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>上下左右</title>
    </head>
    <body>
        <canvas id="can2" width="800" height="600" style="background-color:#ffff00"></canvas>
    </body>
    <script>
        var my = document.getElementById('can2');
        var go = my.getContext('2d');
        document.onkeydown=jumpPage;
        var canY = 0,canX = 0;
        go.fillStyle = '#f0f';
        go.fillRect(0, 0, 50, 50);
    
        function jumpPage() {
            go.clearRect(0,0,800,600);
            if (event.keyCode==37)//
                canX-=10;
            if (event.keyCode==38)//
                canY-=10;
            if (event.keyCode==39)//
                canX+=10;
            if (event.keyCode==40)//
                canY+=10;
    
            if(canX>750 ){
                canX=750;
            }else if(canX<0){
                canX=0;
            }
            if(canY<0  ){
                canY=0;
            }else if(canY>550){
                canY=550;
            }
    
            go.fillRect(canX, canY, 50, 50);
    
        }
    
    
    
    </script>
    
    </html>

    2,在canvas画布上点击产生圆

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>canvas点击显示随机大小圆</title>
    </head>
    <body>
        <canvas id="can2" width="800" height="600" style="background-color:#ffff00"></canvas>
    </body>
    <script>
        var my = document.getElementById('can2');
        var go = my.getContext('2d');
        var num= 0;
        go.fillStyle = '#0a0';
    
        my.onclick=function(ev){
            var oEvent=ev||event;
            var oLeft=oEvent.clientX - my.offsetLeft + 'px';
            var oTop=oEvent.clientY - my.offsetTop + 'px'
            go.beginPath();
            var canR = parseInt(30*Math.random()+10);
            go.arc(parseInt(oLeft),parseInt(oTop),canR,0,2*Math.PI)
            go.fill()
        }
    
    </script>
    
    </html>
    

    3,下雨效果

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>下雨效果</title>
    </head>
    <body>
        <canvas id="can2" width="1900" height="600" style="background-color:#ffffff"></canvas>
    </body>
    <script>
        var my = document.getElementById('can2');
        var go = my.getContext('2d');
    
        var ary = [];
            setInterval(function(){
                var e = e || event ;
                var oLeft= parseInt(1900*Math.random()) ;
                var oTop= -50;
                var canh = parseInt(50*Math.random()+10);
                var rgb = parseInt(255*Math.random());
                var lw = parseInt(5*Math.random());
                var my_obj = {
                    x:oLeft,
                    y:oTop,
                    h:canh,
                    w:lw,
                    fun:function(){
                        go.beginPath();
                        go.lineWidth=my_obj.w;
                        go.beginPath();
                        go.moveTo(my_obj.x , my_obj.y);
                        go.lineTo(my_obj.x , my_obj.y + my_obj.h);
                        go.stroke();
                    }
                };
                ary.push(my_obj);
    
                var set = setInterval(function(){
                    my_obj.y+=10;
                    if(my_obj.y>=600){
                        clearInterval(set);
                        ary.shift(my_obj)
                    }
                },10);
            },25);
    
    
        function draw(){
            go.clearRect(0,0,1900,600);
            ary.forEach(function(obj){
                obj.fun();
            });
            requestAnimationFrame(draw);
        }
        draw();
    </script>
    
    </html>

      

  • 相关阅读:
    朴素贝叶斯分类<转载>
    SVM算法
    八大排序算法
    中文分词算法
    常用mvn 设置版本号命令
    关于object的wait和notity
    好用的技术博客列表
    相关技术博客
    mysql 锁-比较详细、深入的介绍
    eclipse如何配置tomcat运行web项目时省略项目名称
  • 原文地址:https://www.cnblogs.com/liangjj/p/7094931.html
Copyright © 2011-2022 走看看