O Canvas realiza uma função simples da prancheta e adiciona o efeito do telefone móvel 1.01

Com base na última vez, adicionados alguns códigos, o terminal móvel pode ser operado

URL da visita: https://chandler712.github.io/Item/

<! - 简单 版 画板 -> 
<! DOCTYPE html> 
<html lang = "en"> 
<head> 
    <meta charset = "UTF-8"> 
    <meta name = "viewport" content = "width = device- largura, escala inicial = 1.0 "> 
    <title> 简单 版 画板 </title> 
    <script src =" https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js "> < / script> 

    <style> 
        body, div, canvas, h5, entrada, ul, li, p, botão { 
            margin: 0px; 
            preenchimento: 0px; 
            posição: relativa; 
            
        } 
        #mycanvas { 
            
           margin: 5px; 
       } 
        #content { 
            margin: 5px auto; 
            largura: 700px; 
            altura: 510px;
            borda: 1px cinza sólido; 
            altura: 20 px;
            
        } 
        #canvas_selector { 
            position: absolute; 
            margem esquerda: 505px; 
            margem superior: -512 px; 
            
            altura: 500 px; 
            largura: 190px; 
            borda: 1px preto sólido; 
        } 
        .título { 
            alinhamento de texto: centro; 
            margem inferior: 10 px; 
        } 
       
        ul li { 
            
            tipo de estilo de lista: nenhum; 
            margem: 10 px 30 px 10 px 20 px; 
            display: bloco; 
            flutuar: esquerda; 
            largura: 40 px; 
            fundo: verde-amarelo; 
            cursor: ponteiro;
            borda: 1px cinza sólido; 
        } 
     
        # canvas_color, # canvas_brush, # canvas_control, # canvasImage { 
            
            margin: 50px 0 50px 0; 
        } 
       
        #canvas_brush { 
           
            height: 80px; 
            margem: 10 px 10 px 0 px 20 px; 

            fundo: verde-amarelo; 
            alinhamento de texto: centro; 
            
        } 
        #lineT { 
            width: 150px; 
            altura: 30px; 
            fundo: bisque; 
        } 
        #canvas_control {  
            margin: 10px 10px 20px 30px;
            alinhamento de texto: centro; 
        } 
        
        #canvasImage { 
            alinhamento de texto: centro; 
           
        }
        #imgDiv { 
            margin: 0 auto; 
        } 
        #line { 
            width: 40px; 
            altura: 20 px; 
            cursor: ponteiro; 
        } 
    </style> 
</head> 
<body> 
    <div id = "content"> 
        <canvas id = "mycanvas" width = "500" height = "500" style = "borda: 1px vermelho sólido;"> </ tela> 
        <div id = "canvas_selector"> 
            
            <div id = "canvas_color"> 
                
                <h5 class = "
            <div id = "canvas_brush">
                <input type = "range" id = "lineT" min = "1" max = "100" value = "2"> 
            </div> 
            <div id = "canvas_control"> 
                <h5 class = "title"> 操作 < / h5> 
                <span> <button style = "background: greenyellow" id = "prev"> 一步 一步 </button> </span> 
                
                <span> <button style = "background: greenyellow" id = "cloth"> 橡皮B </button> </span> 
                <span> <button style = "background: # ffc200" id = "clear"> 清除 </button> </span> 
            </div> 
            <div id = "canvasImage">
                <button id = "createImg"> 图像 图像 </button> 
            </div> 
        </div> 
        
    </div> 
    <div id = "imgDiv"> </div> 
    
</body> 
</html>
<script> 
    var canvas = document.getElementById ("mycanvas"); 
    var ctx = canvas.getContext ("2d"); // Criar objeto de tela 
    var bool = false; 
    var left = $ ("# mycanvas"). offset ( ) .left; // Obtém o valor esquerdo do canvas 
    console.log ("left", left); 
    var top = $ ("# mycanvas"). offset (). top; // Obtém o valor superior do canvas 
    console.log ( "top", top); 
    var canvasW = $ ("# mycanvas"). width (); // Obtém a largura da tela 
    console.log ("canvasW", canvasW); 
    var canvasH = $ ("# mycanvas"). height (); // Obtém a altura da tela 
    console.log ("canvasH", canvasH); 
    var img = []; // A matriz usada para armazenar a captura de tela da imagem da tela 
    var imgDiv = document.getElementById ("imgDiv"); 
    var content = document.getElementById ("content") 
    
    var color = "# 000";
    
    ctx.lineCap = "round"; // Defina o estilo do ponto final da linha     
    ctx.lineJion = "round"; // Defina o tipo de canto criado quando duas linhas se cruzam.//Clique o   
     
  
    
    mouse para definir o ponto inicial da tela 
     $ ("# mycanvas ") .mousedown (função (e) { 
        bool = true; 
        console.log (" mousedown ", bool); 
        ctx.beginPath (); // inicia / redefine um caminho 
        ctx.moveTo (e.clientX-left, e.clientY-top); // Mova o caminho para o ponto especificado na tela sem criar uma linha 
        var pic = ctx.getImageData (0,0, canvasW, canvasH); // Obtenha a imagem da tela atual 
        img.push (pic ); // 
     Salve a imagem atual em uma matriz 
    }); 
    // Mova o mouse para desenhar uma linha quando bool = ture $ ("# mycanvas"). Mousemove (function (e) { 
       console.log ("mousemove", bool); 
        if (bool) {// Controla a continuidade do desenho da linha pelo valor bool, se bool = true, desenha a linha 
            console.log ("if (bool) ", bool);
            ctx.lineTo (e.clientX-left, e.clientY-10); // Adicione um novo ponto, crie uma linha a partir deste ponto até o último ponto especificado na tela 
            ctx.stroke (); // Draw line 
        } 
    }) ; 
    // Quando o mouse sair da tela ou levantar, saia da linha de desenho atual e crie uma nova linha de desenho para obter um desenho intermitente 
     $ ("# mycanvas"). Mouseout (function (e) { 
        ctx.closePath (); // Quando o mouse sair da área da tela, crie um caminho do ponto atual para o ponto inicial 
        bool = false; 
        console.log ("mouseout", bool); 
    }); 
    $ ("# mycanvas"). Mouseup (function (e) { 
        ctx .closePath (); // Quando o mouse é levantado, crie um caminho do ponto atual para o ponto inicial 
        bool = false; 
        console.log ("mouseup", bool); 
    }); 


    // Limpe a tela 
    $ ("# clear ") .click (function () { 
        // alert (" Você tem certeza de que limpa a tela? ");
        ctx.clearRect (0,0, canvasW, canvasH); // cria um retângulo para limpar 
    }); 
    // apaga a tela 
    $ ("# cloth"). click (function () { 
        ctx.strokeStyle = "# fff"; / / Use o desenho de linha para realizar a função borracha em branco 
    }); 
    // Etapa anterior 
    $ ("# prev"). Clique em (função () { 
        if (img.length> = 0) { 
            console.log ("img.length" , img.length); 
            var newImgLength = img.length; 
            console.log ("newImgLength", newImgLength); 
            ctx.putImageData (img.pop (), 0,0); 
            
         
        } 
    }); 
    // Altere a cor 
    $ (" #changeColor "). change (function () { 
        ctx.strokeStyle = this.value; // Alterar cor 
    }); 
    // Alterar tamanho do pincel
    $ ("# lineT"). change (function () { 
        ctx.lineWidth = this.value; 
    }); 
    
    


     
        
    // Gere uma imagem 
    $ ("# createImg"). click (function () { 
        var url = canvas.toDataURL ( 'image / png'); 
        var newImg = new Image (); // Criar um objeto de imagem 
        newImg.src = url; 
        imgDiv.appendChild (newImg); 
        imgDiv.style.width = "500px"; 
        imgDiv.style.height = "500px"; 
        imgDiv.style.background = "# ccc"; 
        
    }); 


 // Função no terminal móvel 
    // Clique no mouse para definir o ponto inicial da tela 
    canvas.ontouchstart = function (a) { 
        bool = true; 
        var x = a.touches [0] .clienteX; 
        var y = a. Toca em [0] .clienteY; 
        console.log (x, y);
        ctx.beginPath (); // Iniciar / redefinir um caminho  
        ctx.moveTo (x , y); 
        var pic = ctx.getImageData (0,0, canvasW, canvasH); // Obtém a imagem da tela atual
        img.push (pic); // Salve a imagem atual em uma matriz 
    }; 
    canvas.ontouchmove = function (a) { 
       console.log ("move", bool ); 
        var x = a.touches [0] .clientX; 
        var y = a.touches [0] .clientY; 
        if (bool) {// Controla a continuidade do desenho de linha pelo valor bool, se bool = true, desenha a linha 
            console.log ("if (bool2)", bool); 
        
            ctx.lineTo (x-left, y); // Adicione um novo ponto, crie uma linha 
            ctx.stroke () desse ponto até o último ponto especificado na tela ; // Desenho da linha 
           
        } 
    }; 
   
 

        
    
</ script>

  

Acho que você gosta

Origin www.cnblogs.com/chandlerwong/p/12739936.html
Recomendado
Clasificación