`
wangdf_jee
  • 浏览: 114662 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript Canvas 画板(线条)

 
阅读更多
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>  
<style type="text/css">
canvas{
   border:1px solid green;
}
</style>
</head>  
<body>  
  <canvas id="canvas" width="490" height="220"></canvas>
  <script type="text/javascript">
//BEGIN LIBRARY CODE
   var canvas = document.getElementById('canvas');
   if(typeof G_vmlCanvasManager != 'undefined') {
   	canvas = G_vmlCanvasManager.initElement(canvas);
   }
   context = canvas.getContext("2d");
   $('#canvas').mousedown(function(e){
	   var mouseX = e.pageX - this.offsetLeft;
	   var mouseY = e.pageY - this.offsetTop;
	 		
	   paint = true;
	   addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);
	   redraw();
	 });
   $('#canvas').mousemove(function(e){
	   if(paint){
	     addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);
	     redraw();
	   }
	 });
   $('#canvas').mouseup(function(e){
	   paint = false;
	 });
   $('#canvas').mouseleave(function(e){
	   paint = false;
	 });
   var clickX = new Array();
   var clickY = new Array();
   var clickDrag = new Array();
   var paint;

   function addClick(x, y, dragging)
   {
     clickX.push(x);
     clickY.push(y);
     clickDrag.push(dragging);
   }
   function redraw(){
	   canvas.width = canvas.width; // Clears the canvas
	   
	   context.strokeStyle = "#df4b26";
	   context.lineJoin = "round";
	   context.lineWidth = 5;
	 			
	   for(var i=0; i < clickX.length; i++)
	   {		
	     context.beginPath();
	     if(clickDrag[i] && i){
	       context.moveTo(clickX[i-1], clickY[i-1]);
	      }else{
	        context.moveTo(clickX[i]-1, clickY[i]);
	      }
	      context.lineTo(clickX[i], clickY[i]);
	      context.closePath();
	      context.stroke();
	   }
	 }
   

  </script>  
</body>  
</html>
分享到:
评论

相关推荐

    微信小程序 Canvas 画板、签名板Demo

    总结来说,"微信小程序 Canvas 画板、签名板Demo"是一个综合运用了微信小程序API、Canvas绘图技术和交互设计的实例,它不仅展示了如何在小程序中创建交互式的画板功能,也为我们提供了学习和参考的样本。通过深入...

    canvas画板

    这个画板项目中,"铅笔"功能的实现可能是通过监听鼠标或触摸事件,计算出每次移动的坐标,然后在`canvas`上绘制连续的线条。这种线条的绘制可以借助`beginPath()`,`moveTo()`,`lineTo()`等方法来完成,而`stroke()...

    canvas画板工具 uni-modules、画板、canvas、签名、电子签名、简约风、万能、免费、支持横竖屏

    在canvas画板工具中,canvas元素作为绘图区域,通过JavaScript API(如`CanvasRenderingContext2D`)来绘制图形、线条和文字,甚至处理图像。 uni-app是一个多端开发框架,允许开发者用一套代码实现跨平台应用开发...

    canvas实现画板工具

    总之,Canvas画板工具的实现涉及到了HTML5 Canvas API的多种技术,是一个很好的实践项目,可以帮助前端开发者提升动手能力和对图形编程的理解。通过研究这样的开源项目,我们可以不断学习和提高自己的前端技能。

    canvas画板实例

    在这个"canvas画板实例"中,我们可以通过JavaScript来控制画笔的行为,比如改变颜色、调整画笔的粗细,甚至模拟橡皮擦的效果。 1. **画笔颜色**:Canvas API提供了`fillStyle`和`strokeStyle`属性,用于设置填充色...

    Canvas画板钢笔绘制线条特效.zip

    本示例“Canvas画板钢笔绘制线条特效.zip”聚焦于利用Canvas API来实现一个独特的钢笔绘制线条并带有导火线燃烧动画的特效。这个特效可以用于创建吸引人的交互式用户界面或者艺术展示。 首先,让我们深入了解一下...

    canvas实现的画板

    3. `script.js`: JavaScript脚本文件,实现了Canvas的绘图逻辑和事件监听处理。 4. 可能还会有其他辅助资源文件,如图片或图标。 在深入研究源代码时,你可以关注以下几个关键点: - 如何创建和初始化Canvas元素。 ...

    canvas画板.rar

    "canvas画板"是这个技术的一个典型应用实例,它通过JavaScript来实现交互式的图形操作。"canvas画板.domo"可能是一个演示项目,展示了如何使用canvas进行基本和高级的绘图操作。 ### 1. HTML5 Canvas基础知识 ...

    微信小程序canvas画板手写签名

    微信小程序canvas画板是开发在线手写签名功能的重要工具,它允许用户在手机屏幕上进行自由绘制,模拟实际的签名过程。这一技术的核心在于利用小程序的canvas原生组件,结合JavaScript来实现画布上的各种交互操作。 ...

    canvas绘画板的实现(兼容手机)

    我们将通过源码分析和工具使用,来创建一个功能完善的手机端Canvas画板。 首先,我们需要在HTML中设置一个`&lt;canvas&gt;`元素。这个元素是所有绘图操作的基础,我们可以使用JavaScript的`CanvasRenderingContext2D`接口...

    canvas 画板 、canvas 图片编辑

    "canvas 画板"和"canvas 图片编辑"是Canvas应用的两个核心场景,广泛用于图像处理、游戏开发、数据可视化等多个领域。本压缩包文件“canvas”可能包含了一系列关于使用Canvas进行画布操作和图片编辑的示例代码,适用...

    QMLcanvas画板鼠标画图(有预览路径)

    在"QMLcanvas画板鼠标画图(有预览路径)"的场景中,我们首先需要设置一个Canvas元素,并绑定一个JavaScript函数来处理鼠标事件。当用户按下鼠标按钮时,我们开始记录路径,每移动一次鼠标,我们就调用beginPath()...

    canvas 画板 手写板

    2. 获取Canvas上下文:通过JavaScript的`getContext('2d')`方法获取2D渲染上下文,这是绘图的基础。 ```javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); ``` ...

    QMLcanvas画板鼠标画图

    本项目“QMLcanvas画板鼠标画图”是利用QML的canvas组件实现了一个交互式的画板应用,用户可以通过鼠标在画板上自由涂鸦、画出各种形状和线条。 ### QML canvas简介 QML canvas 提供了一个2D绘图环境,可以使用...

    电脑端的canvas 画板

    这个“电脑端的canvas画板”项目,显然就是利用了Canvas来创建一个可编辑的画布,用户可以切换颜色、擦除已有内容,并将作品下载保存。下面我们将深入探讨Canvas及其相关知识点。 1. **Canvas基本概念**:Canvas是...

    HTML5 canvas多功能涂鸦画板绘图代码.zip

    这个"HTML5 canvas多功能涂鸦画板绘图代码"项目利用了canvas和jQuery库来实现一个功能丰富的在线绘图应用程序。以下是关于这个项目的详细知识点: 1. **HTML5 Canvas**:Canvas是一个HTML5标签,它提供了一个二维...

    javascript+Canvas实现画板功能

    通过以上步骤和代码示例,我们可以了解到实现一个基本的JavaScript+Canvas画板功能需要掌握的技术要点。这不仅仅包括对Canvas元素和2D绘图API的理解,还包括对事件监听器的使用和对鼠标事件处理的理解。本文提供了...

    sketchpad简单的HTML5Canvas涂鸦画板插件

    sketchpad是一款基于HTML5 Canvas的涂鸦画板jQuery...它可以使用鼠标在画板上绘制各种涂鸦图案,可以修改线条的尺寸和颜色,还可以回播绘制的过程动画,以及将绘制的图案保持为Json或对象,在其它地方进行恢复操作。

    html canvas 画板

    Canvas 提供了一个二维绘图上下文,通过JavaScript代码可以进行各种图形绘制,包括线条、矩形、圆形、文本以及复杂的路径等。在网页设计和交互式应用开发中,HTML Canvas 的使用越来越广泛。 这篇名为“html canvas...

Global site tag (gtag.js) - Google Analytics