zoukankan      html  css  js  c++  java
  • canvas意料之外获得降龙十八掌的效果

    瞎整本来是要点击编辑多张图片的,没想到弄成这样。这不是电视剧里的降龙十八掌吗

    特此记录留着以后用,看来canvas做游戏特效都不错啊。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body,div{
                margin:0;
                padding:0;
            }
            #d1{
                500px;
                height: 400px;
                border: 2px solid #00FFD1;
            }
        </style>
    </head>
    <body>
    <script src="js/jquery-3.3.1.min.js"></script>
    <div id="d1">
        <canvas id="myCanvas" width="500" height="400">
            <p>您的系统不支持此程序!</p>
        </canvas>
    </div>
    <img src="images/boss.png" alt="test01" id="img01" />
    <img src="images/weixin.png" alt="test01" id="img02" />
    <script>
        var canva=document.getElementById("myCanvas");
        var cansText=canva.getContext("2d");
        var imgs=new Array("images/boss.png","images/weixin.png");
        var img;
        var draw=new Array();
        var i=0;
    
        $('#img01').on('click', function(){
            cansText.save();
            cansText.beginPath();
            img = new Image();
            img.src=imgs[0];
            cansText.drawImage(img,50,60,150,100);
            cansText.closePath();
            cansText.fill();
            cansText.restore();
        });
        $('#img02').on('click', function(){
            cansText.save();
            cansText.beginPath();
            img = new Image();
            img.src=imgs[1];
            cansText.drawImage(img,60,50,150,100);
            cansText.closePath();
            cansText.fill();
            cansText.restore();
        });
    
        ini();
        function ini(){
            img = new Image();
            img.src=imgs[0];
            draw[i]=img;
            cansText.drawImage(draw[i],50,50,150,100);
        }
    
    
        //在事件外声明需要用到的变量
        let ax,ay,x,y;
    
        canva.onmousedown=function (e) {
    
            canva.onmousemove = function(e){
                x= e.clientX;y=e.clientY;
    
                //限制移动不能超出画布
                (x<173)? ax=75 : ax=425;
                (y<148)? ay=50 : ay=350;
    
                (x < 425 && x >75)? x =e.clientX : x =ax;
    
                (y > 50 && y <350) ? y=e.clientY : y=ay;
    
                //先清除之前的然后重新绘制,关键
               // cansText.clearRect(0,0,canva.width,canva.height);
    
                cansText.drawImage(img,x-75,y-50,150,100);
            };
    
            canva.onmouseup = function(){
                canva.onmousemove = null;
                canva.onmouseup = null;
            };
        }
    
    </script>
    </body>
    </html>
  • 相关阅读:
    HTML 5 标准属性
    启程
    【Java】自定义登陆拦截器
    【Java】将List中的实体按照某个字段进行分组的算法
    SpringBoot + MultipartFile 实现文件上传以及文件转移的功能以及配置全局捕获上传文件过大异常
    MySQL查询两门及两门以上不及格的学生,显示姓名
    java中可以用==来比较两个字符串是否相等吗
    自己动手Jquery插件
    10个可以直接拿来用的JQuery代码片段
    linux 安装python
  • 原文地址:https://www.cnblogs.com/zeussbook/p/10280435.html
Copyright © 2011-2022 走看看