canvas——画板

注意部分:



canvas的height和width不能再css中设定,应该在html中设定,否则会影响页面的分辨率。

效果图:



图1:

代码



css:

#canvas{
    cursor: crosshair;
}
button{
    width: 80px;
}
.yellowBtn{
    background-color: yellow;
}
.redBtn{
    background-color: red;
}
.blueBtn{
    background-color: blue;
}
.greenBtn{
    background-color: green;
}
.whiteBtn{
    background-color: white;
}
.blackBtn{
    background-color:black;
}

页面:

    <canvas id="canvas" width="900" height="400">浏览器不支持html5</canvas>
    <br>
    <button id="yellow" class="yellowBtn" onclick="lineColor=‘yellow‘;">YELLOW</button>
    <button id="red" class="redBtn" onclick="lineColor=‘red‘;">RED</button>
    <button id="blue" class="blueBtn" onclick="lineColor=‘blue‘;">BLUE</button>
    <button id="green" class="greenBtn" onclick="lineColor=‘green‘;">GREEN</button>
    <button id="white" class="whiteBtn" onclick="lineColor=‘white‘;">WHITE</button>
    <button id="black" class="blackBtn" onclick="lineColor=‘black‘;">BLACK</button>
    <br>
    <button class="lineWeight4" class="whiteBtn" onclick="lineWeight=2;">2px</button>
    <button class="lineWeight4" class="whiteBtn" onclick="lineWeight=4;">4px</button>
    <button class="lineWeight8" class="whiteBtn" onclick="lineWeight=8;">8px</button>
    <button class="lineWeight12" class="whiteBtn" onclick="lineWeight=12;">12px</button>

js:

   <script type="text/javascript">
    var canvas = document.getElementById("canvas");

    //判断是否支持canvas
    if(!canvas || !canvas.getContext){
        return false;
    }

    //获得context对象,目前只支持2d
    var ctx = canvas.getContext("2d");

    //画出画板背景,此处为矩形
    ctx.fillStyle = "black";
    ctx.fillRect(0, 0, 900, 400);

    //初始化鼠标是否按下和坐标点位置, true为按下
    var mouseState = false,
        oldX = -10,
        oldY = -10,
        lineColor = "white",
        lineWeight = 2;

    //canvas添加鼠标事件, 鼠标移动、鼠标按下和鼠标弹起
    if(window.addEventListener){
        canvas.addEventListener("mousemove", draw, true);
        canvas.addEventListener("mousedown", down, false);
        canvas.addEventListener("mouseup", up, false);

    }else{
        canvas.attachEvent("onmousemove", draw);
        canvas.attachEvent("onmousedown", down);
        canvas.attachEvent("onmouseup", up);
    }

    //鼠标按下,拖动画图
    function draw(event){
        if(mouseState === true){
            var newX = event.clientX - 10;
            var newY = event.clientY - 10;

            ctx.beginPath();
            ctx.moveTo(oldX, oldY);
            ctx.lineTo(newX, newY);

            ctx.strokeStyle = lineColor;
            ctx.lineWidth = lineWeight;
            ctx.lineCap = "round";
            ctx.stroke();

            oldX = newX;
            oldY = newY;
        }

    }

    function down(event){
        mouseState = true;
        oldX = event.clientX - 10;
        oldY = event.clientY - 10;
    }

    function up(){
        mouseState = false;
    }

    </script>

增加导出功能:



使用 canvas.toDataURL("image/png");保存图片,eg:

    function exportImage(event){
        var imgSrc = canvas.toDataURL("image/png");
        document.getElementById("image").src = imgsrc;
    }

canvas——画板,布布扣,bubuko.com

时间: 2024-10-09 20:11:00

canvas——画板的相关文章

Html5新特性 &lt;canvas&gt;画板画直线

 下面例子为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht

[JavaScript]创建一个canvas画板-小结(1)

创建一个canvas画板 项目链接:GitHub 项目预览:Github Pages 项目描述:通过MDN提供的教程和API,创建一个拥有基本功能(包括绘画,橡皮擦,保存等)的canvas画板. 在教程的学习过程中,掌握canvas的基本用法,以及需要注意的一些地方. 开始创建一块画板 首先我们要在HTML中创建一个canvas <canvas id="canvas" width="300" height="300"></can

(练习题)canvas画板(简)

canvas:IE9及以上版本,主流浏览器都支持. 注意:当需要设定canvas的高度时不要写在css中,canvas默认是300x150,在css中设置宽高相当于等比放大或者缩小了,canvas中的内容也会等比放大或者缩小. <!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta name="viewport" c

canvas 画板

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" type="text/css" href="css/main.css"/> </head> <body> <div class=

canvas画板基础应用的学习

canvas是html5中的绘图容器,我们可以通过javascript的控制来进行图形的绘制,绘制对象可以是路径.盒.圆.字符等,同时,你也可以通过js给画布添加图像,下面来介绍canvas的各种基本的用法: 1.首先,我们需要在html标签中创建一个canvas标签,并且通过脚本对其进行引入. <canvas id="myCanvas" width="200" height="100" style="border:1px sol

html5 canvas 画板

<!doctype html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>javascript结合html5 canvas实现的涂鸦板 - 分享JavaScript-sharejs.com</title> <meta name="Copyright" con

canvas简易画板。

在学canvas的时候,想到可以做一个自己用来画画的简易画板,加上canvas的基础都已经学完,便尝试做了一个画板.如图 1.获取标签. var c=document.getElementById('myCanvas'); var ctx= c.getContext('2d');var b=document.getElementById('b'); var b1=document.getElementById('b1'); var bbb=document.getElementById('bbb

一款基于HTML5 Canvas的画板涂鸦动画

今天给各网友分享一款基于HTML5 Canvas的画板涂鸦动画.记得之前我们分享过一款HTML5 Canvas画板工具,可以切换不同的笔刷,功能十分强大.本文今天要再来分享一款基于HTML5 Canvas的画板涂鸦动画应用,功能和之前那个类似,但是新增了回撤和清空画板的操作,实现思路也基本类似.实现的效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="wrap"> <canvas id="canvas" cl

[ html canvas save restore ] canvas绘图 save restore 属性理论讲解

Canvas API详解(Part 1) 分类 Android 基础入门教程 本节引言: 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API,本节开始我们来讲解 Canvas(画板)的一些常用API,我们在 8.3.1 三个绘图工具类详解 中已经列出了我们可供调用的一些方法,我们分下类: drawXxx方法族:以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前面绘画的图层. clipXXX方法族:在当前的画图区域裁剪(clip)出一个新的画图