zoukankan      html  css  js  c++  java
  • js和html5实现画板

    html5新添了一个重要又强大的标签元素<canvas>,该标签真有彻底替换掉flash的尽头,现在很多网页游戏就是用<canvas>完成的,下面代码就是用该标签制作的一个画板。

    效果图:


    <!DOCTYPE HTML>
    <html>
    <head>
    	<meta charset="utf-8"/>
    <style>
    #canvas{cursor:crosshair;}
    #red{background:red; 30px;height: 27px}
    #blue{background:blue; 30px;height: 27px}
    #yellow{background:yellow; 30px;height: 27px}
    #white{background:white; 30px;height: 27px}
    #zi{background:#8B026B; 30px;height: 27px}
    </style>
    
    </head>
    <body>
    <canvas id="canvas" width="600" height="400"> </canvas>
    <br><label>画笔颜色:</label>
    <input type="button" id="red" onclick="linecolor='red'">
    <input type="button" id="blue" onclick="linecolor='blue'">
    <input type="button" id="yellow" onclick="linecolor='yellow'">
    <input type="button" id="white" onclick="linecolor='white'">
    <input type="button" id="zi" onclick="linecolor='#8B026B'"> 
    <label>画笔宽度:</label>
    <select id="sel">	
    	<option value="4">4</option>
    	<option value="8">8</option>
    	<option value="16">16</option>
    	<option value="30">30</option>
    </select>
    <input type="button" value="生成图片" onclick="change()"><br>
    <img id="image" src="" width="500px" height="200px">
    
    <script type="text/javascript">
    function change(){
    	document.getElementById("image").src=canvas.toDataURL("image/jpg");
    	//window.open("demo.htm", "height=100px, width=400px");
    	//alert(document.getElementById("image"));
    	}
    //下拉画笔宽度
    window.onload=function(){
    	var huabi=document.getElementById("sel");
    	huabi.onchange=function(){
    	linw=huabi.value;
    	};
    	//linw=huabi;
    };
    var canvas=document.getElementById("canvas");
    var ctx=canvas.getContext("2d");
    //画一个黑色矩形
    ctx.fillStyle="#002200";
    ctx.fillRect(0,0,600,400);
    //按下标记
    var onoff=false;
    var oldx=-10;
    var oldy=-10;
    //设置颜色默认为白色
    var linecolor="white";
    //宽度默认为4
    var linw=4;
    //鼠标移动事件,事件绑定
    canvas.addEventListener("mousemove",draw,true);
    canvas.addEventListener("mousedown",down,false);
    canvas.addEventListener("mouseup",up,false);
    function down(event){
    	onoff=true;
    	oldx=event.pageX-10;
    	oldy=event.pageY-10;
    	}
    	function up(){
    	onoff=false;
    	}
    	function draw(event){
    	if(onoff==true)
    		{
    		var newx=event.pageX-10;
    		var newy=event.pageY-10;
    		ctx.beginPath();
    		ctx.moveTo(oldx,oldy);
    		ctx.lineTo(newx,newy);
    		ctx.strokeStyle=linecolor;
    		ctx.lineWidth=linw;
    		ctx.lineCap="round";
    		ctx.stroke();
    		
    		oldx=newx;
    		oldy=newy;
    		}
    	}
    </script>
    </body>
    </html>


  • 相关阅读:
    iframe自动适应高度
    php正则过滤html标签、空格、换行符的代码,提取图片
    destoon使用中的一些心得
    Fiddler 过滤 css,图片等请求url 正则表达式
    不用递归实现无限分类数据的树形格式化
    PHP定时执行任务的实现
    Discuz! X3.1去除内置门户导航/portal.php尾巴的方法
    discuzx完全自定义设计模板门户首页,栏目,专题模板方法
    Apache环境.htaccess伪静态301跳转(www与不带www)
    15万甚至30万以内的SUV值不值得买?
  • 原文地址:https://www.cnblogs.com/chayangge/p/4288677.html
Copyright © 2011-2022 走看看