zoukankan      html  css  js  c++  java
  • 通过Canvas实现画板

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title>写字板</title>
        <style type="text/css">
        .wrap {
             800px;
            border: 1px solid gray;
            overflow: hidden;
        }
    
        #myCanvas {
            border: 1px solid gray;
            display: block;
            float: left;
        }
    
        ul {
             180px;
            list-style: none;
            padding: 0;
            float: right;
        }
    
        span {
             30px;
            height: 30px;
            display: inline-block;
        }
    
        #red {
            background-color: red;
        }
    
        #green {
            background-color: green;
        }
    
        #yellow {
            background-color: yellow;
        }
    
        #blue {
            background-color: blue;
        }
        </style>
    </head>
    
    <body>
        <div class="wrap">
            <canvas id="myCanvas" width="600" height="400"></canvas>
            <ul>
                <li>
                    <p>画笔颜色</p>
                    <span id="red"></span>
                    <span id="green"></span>
                    <span id="yellow"></span>
                    <span id="blue"></span>
                </li>
                <li>
                    <p>画笔粗细</p>
                    <input type="button" id="bold" value="变粗" />
                    <input type="button" id="lighter" value="变细" />
                </li>
                <li>
                    <p>操作</p>
                    <input type="button" id="clear" value="橡皮擦" />
                    <input type="button" id="empty" value="清空画板" />
                </li>
            </ul>
        </div>
    </body>
    <script type="text/javascript">
    // canvas标签
    var canvas = document.getElementById("myCanvas");
    // 画笔
    var pen = canvas.getContext("2d");
    // 橡皮擦按钮
    var clearBtn = document.getElementById("clear");
    // 清空画布按钮
    var emptyBtn = document.getElementById("empty");
    // 红色画笔选项标签
    var red = document.getElementById("red");
    // 绿色画笔选项标签
    var green = document.getElementById("green");
    // 黄色画笔选项标签
    var yellow = document.getElementById("yellow");
    // 蓝色画笔选项标签
    var blue = document.getElementById("blue");
    
    // 加粗按钮
    var boldLine = document.getElementById("bold");
    // 变细按钮
    var lighterLine = document.getElementById("lighter");
    
    // 默认画笔颜色
    var color = 'black';
    // 默认画笔粗细
    var lineW = 3;
    
    
    //添加鼠标按下事件
    function bei() {
        canvas.onmousedown = function(e) {
    
            var even = window.event || e;
            // 获取鼠标位置	
            var x = even.offsetX;
            var y = even.offsetY;
            pen.beginPath();
            pen.strokeStyle = color;
            pen.moveTo(x, y);
            // 鼠标移动事件
            canvas.onmousemove = function(e) {
                // 画线逻辑	
                var even = window.event || e;
                // 获取鼠标位置	
                var x = even.offsetX;
                var y = even.offsetY;
                pen.lineTo(x, y);
                pen.stroke();
            }
            //添加鼠标松开事件
            canvas.onmouseup = function() {
                canvas.onmousemove = null;
            }
        }
    }
    bei();
    
    
    
    //红色画笔点击事件
    red.onclick = function() {
        color = "red";
    }
    //绿色画笔点击事件
    green.onclick = function() {
        color = "green";
    }
    //黄色画笔点击事件
    yellow.onclick = function() {
        color = "yellow";
    }
    //蓝色画笔点击事件
    blue.onclick = function() {
        color = "blue";
    }
    
    
    //橡皮擦按钮添加点击事件
    clearBtn.onclick = function() {
        //鼠标按下事件
        canvas.onmousedown = function() {
            canvas.onmousemove = function(e) {
                var even = window.event || e;
                // 获取鼠标位置
                var x = even.offsetX;
                var y = even.offsetY;
                pen.clearRect(x,y, 20, 20);
    
            }
        }
        canvas.onmouseup = function() {
            canvas.onmousemove = null;
            canvas.onmousedown = null;
            bei();
        }
    }
    
    //清空按钮添加点击事件
    emptyBtn.onclick = function() {
        //清空画布
        pen.clearRect(0, 0, 600, 400);
    };
    
    //变粗按钮的点击事件
    boldLine.onclick = function() {
        pen.lineWidth = pen.lineWidth + lineW;
    }
    //变细按钮的点击事件
    lighterLine.onclick = function() {
        pen.lineWidth = pen.lineWidth - lineW;
    }
    </script>
    
    </html>
    
  • 相关阅读:
    SQL关闭连接,及分离数据库
    C# 用户选择单个压缩-系统自带压缩
    设计模式7大原则--01
    httpclient
    Mac idea 常用命令
    集合整理
    几种简单的排序算法
    基础数据结构简介
    git 常用命令3
    git 常用命令2
  • 原文地址:https://www.cnblogs.com/The-bug/p/14232999.html
Copyright © 2011-2022 走看看