<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1">
<title>Canvas實(shí)現(xiàn)簡易涂鴉板</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<style>
html,
body {
margin: 0;
padding: 0;
}
canvas {
margin-top: 0px;
}
#huaban {
display: block;
position: absolute;
left: 0;
bottom: 0;
}
#result {
width: 30%;
margin: 0 auto;
}
#result img {
width: 100%;
}
</style>
</head>
<body>
<section id="huaban">
<button onclick="clearCanvas()">清空</button>
<!-- <a href="#" download="canvas_love.png" id="save_btn"> -->
<button id="save_btn">上傳</button>
<!-- </a> -->
<canvas id="canvas" width="400" height="300" style="background-color: rgba(0,0,0,0.1)">
您的瀏覽器不支持canvas
</canvas>
</section>
<div id="result">
</div>
<script>
var saveBtn = document.getElementById('save_btn');
var canvas = document.getElementById('canvas');
canvasResize();
window.addEventListener('resize', canvasResize);
function canvasResize() {
canvas.setAttribute('width', window.innerWidth);
clearCanvas();
}
if (canvas.getContext) {
context = canvas.getContext('2d');
clearCanvas();
canvas.addEventListener('touchstart', touchstart);
canvas.addEventListener('touchmove', touchmove);
saveBtn.addEventListener('click', saveImg);
}
function touchstart(e) {
e.preventDefault();
var touches = e.changedTouches;
var x = touches[0].pageX - $(canvas).offset().left;
var y = touches[0].pageY - $(canvas).offset().top;
context.moveTo(x, y);
}
function touchmove(e) {
e.preventDefault();
var touches = e.changedTouches;
var x = touches[0].pageX - $(canvas).offset().left;
var y = touches[0].pageY - $(canvas).offset().top;
context.lineTo(x, y);
context.stroke();
}
function clearCanvas() {
if (typeof context != 'undefined') {
context.clearRect(0, 0, canvas.width, canvas.height);
context.lineWidth = 1;
context.strokeStyle = '#0000ff';
context.fillStyle = "#f0f0f0";
context.fillRect(0, 0, canvas.width, canvas.height);
context.beginPath();
}
}
function saveImg() {
var dataUrl = canvas.toDataURL("image/png");
// var openWidow = window.open("", "_blank", "width=600, height=200");
// document.write("<img src='" + dataUrl + "' />");
var img = $('<img/>');
img.attr('src', dataUrl);
$('#result').html(img)
// saveBtn.href = dataUrl;
// var image = dataUrl.replace("image/png", "image/octet-stream");
// window.location.href = image;
}
</script>
</body>
</html>
canvas畫板_移動端
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門栗弟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人工闺,你說我怎么就攤上這事乍赫。” “怎么了陆蟆?”我有些...
- 文/不壞的土叔 我叫張陵雷厂,是天一觀的道長。 經(jīng)常有香客問我叠殷,道長改鲫,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任林束,我火速辦了婚禮像棘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壶冒。我一直安慰自己缕题,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布胖腾。 她就那樣靜靜地躺著烟零,像睡著了一般瘪松。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锨阿,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荐吉!你這毒婦竟也來了焙糟?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對情侶失蹤样屠,失蹤者是張志新(化名)和其女友劉穎穿撮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痪欲,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡悦穿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了业踢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栗柒。...
- 正文 年R本政府宣布逛钻,位于F島的核電站,受9級特大地震影響锰提,放射性物質(zhì)發(fā)生泄漏曙痘。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一欲账、第九天 我趴在偏房一處隱蔽的房頂上張望屡江。 院中可真熱鬧,春花似錦赛不、人聲如沸惩嘉。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽文黎。三九已至惹苗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耸峭,已是汗流浹背桩蓉。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像本涕,于是被迫代替她去往敵國和親业汰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 前陣子七夕的時候搞了一個h5活動頁菩颖,需要做一個本地圖片的裁剪上傳功能样漆,用于生成一些特定的表白圖片。主要是用到了H5...
- “canvas絕對不分男女老少幼的晦闰,神秘莫測只是它選擇了裝逼放祟。canvas更是一門藝術(shù),一種審美的逼格呻右。所以一直以...
- let width = canvas.width,height=canvas.height;if (window....