程序小屋

记录生活中的点滴,分享、学习、创新

文章内容 1623753400

canvas鼠标绘图封装

封装成js和css文件:

painter.js

/*

* @Author: ion

* @Date:   2018-10-12 00:43:22

* @Last Modified by:   ion

* @Last Modified time: 2018-10-12 01:48:58

*/

var record =[];

var $elBox;

        $(function(){

            //下载图片

            var downloadImage = document.getElementById('downloadImage');

            bindButtonEvent(downloadImage, "click", saveAsLocalImage);

 

            //设置画笔颜色

            $("#penColor").colpick({

                layout:'rgbhex',

                color:'ff8800',

                onSubmit:function(hsb,hex,rgb,el) {

                    $(el).css('background-color', '#'+hex);

                    $(el).colpickHide();

                    $(el).attr('color-mark','#'+hex);

 

                }

            }).css('background-color', '#ff8800');

        });

 

       //初始化界面,为控件区域添加必要的html元素

        function initUI($el){

            var view = `

                <div class="painter_win">

            <div class="setWH">

                <span>请输入画布大小:</span>

                <div class="setCanvas">

                    <input type="text" id="canvas_width" value="500"> x <input type="text"  id="canvas_height" value="300">

                </div>

                <button id="submitSet" onclick="createCanvas()">确定</button>

            </div>

            <div class="tool">

                <ul>

                    <li>

                        画笔颜色

                        <input type="text" id="penColor" color-mark="#ff8800">

                    </li>

                    <li id="setWe">

                        画笔粗细

                        <input type="text" id="penWeight" value="3">

                    </li>

                    <li class="reduceW" onclick="backStep()">撤回</li>

                    <li class="reduceW" onclick="clearCanvas()">清空</li>

                    <li id="downloadImage">下载图片</li>

                </ul>

            </div>

            <div id="content"></div>

        </div>

            `;

            $el.append(view);

            $elBox=$el;

        }

        //创建canvas画布

        function createCanvas(){

            if(!$("#content #box")[0]){

                var width = $(".painter_win .setWH #canvas_width").val();

                var height = $(".painter_win .setWH #canvas_height").val();

                if(width || height){

                    var boxOffsetX =$elBox[0].offsetLeft;

                    var boxOffsetY =$elBox[0].offsetTop;

                    initCanvas(width,height,boxOffsetX,boxOffsetY);

                    $(".tool").show();

                }else{

                    alert("请输入画布大小");

                }

            }

            

        }

 

        //初始化画布,添加鼠标事件

        function initCanvas(width,height,boxOffsetX,boxOffsetY){

            let txt = `<canvas id="box" width="${width}" height="${height}"></canvas>`;

            $("#content").append(txt);

            $("#box").css({

                'position'   : 'relative',

                'left'       : '50%',

                'margin-left':  -width/2,

                'margin-top' : '20px'

            });

 

 

 

            var box=document.getElementById('box');

            var ctx=box.getContext('2d');

 <

*