关于canvas 写字板,画板的实例1.0
最近一直在整canvas,也没整出什么牛逼的玩意儿,都是些简单的小demo,都不好意思拿出来了。这回这个小例子,在网上那是一搜一大堆,我拿出来,就是来污染网络环境的。
其功能就三个,画线,保存成图片,清除。
来来来,效果图:



这里是链接:https://chuyunshi.github.io/Example/chuyunshi-canvas_write/write.html //2017/6/1/15:02
代码搞起来:
html:
<body> <canvas id="canvas"> </canvas> <button class="btn" onclick="page.saveCanvas()">保存</button> <button class="btn" onclick="page.clearCanvas()">清除</button> <div class="saveImg" id="showImg"> <img id="img" src="" alt=""> </div> </body>
css:
*{ margin:0; padding:0; } ul li{ list-style: none; } body{ overflow: hidden; text-align: center; } #canvas{ border: 1px solid #ddd; } .btn{ display: inline-block; padding: 5px; width:20%; } .saveImg{ display: none; position:absolute; left:0; top:48%; } .saveImg img{ border: 1px solid #ddd; } @-webkit-keyframes down{ 0%{ -webkit-transform: translate3d(0, -120%, 0); } 100%{ -webkit-transform: translate3d(0, 0, 0); } } .down{ -webkit-animation: down 3s ease ; } @-webkit-keyframes dou{ 0%{ -webkit-transform: translate3d(0, 0%, 0); } 50%{ -webkit-transform: translate3d(0, 1%, 0); } 100%{ -webkit-transform: translate3d(0, 0%, 0); } } .dou{ -webkit-animation: dou 0.1s ease infinite ; }
js:
/**
* Created by chuyunshi on 17-05-31.
*/
$(document).ready(function(){
var pageH,pageW;
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext("2d");
var showImg=$("#showImg");
var isDrawing=false;
var el = $('#canvas');
page={
init:function(){
page.resize();
page._touch();
$('body').on("touchmove",function (e) {
e.preventDefault();
});
},
resize:function(){
console.log(111);
pageW = $(window).width();
pageH = $(window).height();
canvas.width = pageW-2;
canvas.height = pageH/2.5;
showImg.find('img').css({
'height': pageH/2.5+'px',
'width' : pageW-2
})
},
_touch:function(){
el.on("touchstart",function(e){
showImg.removeClass('down');
isDrawing = true;
ctx.beginPath();
var touch = e.touches[0];
ctx.moveTo(touch.pageX - canvas.offsetLeft, touch.pageY - canvas.offsetTop);
});
el.on("touchmove",function(e){
if (isDrawing==true) {
ctx.strokeStyle='red';
ctx.lineWidth=2;
// 重新获取鼠标位置
var touch = e.touches[0];
var x=touch.pageX - canvas.offsetLeft;
var y=touch.pageY - canvas.offsetTop;
//画
ctx.lineTo(x, y);
ctx.stroke();
};
})
},
saveCanvas: function(){
console.log(555);
var img=document.getElementById("img");
var img1=$('#img');
img.src=canvas.toDataURL();
ctx.clearRect(0, 0, pageW-2, pageH/2);
showImg.css("display","block");
showImg.addClass('down');
img1.addClass('dou');
},
clearCanvas: function(){
ctx.clearRect(0, 0, pageW-2, pageH/2);
showImg.css("display","none");
showImg.removeClass('down');
},
}
page.init();
})
浙公网安备 33010602011771号