国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

使用HTML5做個畫圖板的方法介紹

2020-03-24 16:24:29
字體:
來源:轉載
供稿:網友
首先要說明的是這里不是用鼠標畫畫,而是在觸摸設備上用手指,比如ipad。做畫圖板,自然使用html5的canvas來實現了。在canvas中我們可以畫圓,畫矩形,畫自定義的線條等等。這次主要使用的畫圓跟畫線條來實現。html中支持對觸摸事件的響應。onTouchStart 觸摸開始onTouchMove 觸摸滑動onTouchEnd 觸摸結束有了這些事件,我們實現用手指在瀏覽器里畫畫就很簡單了。IPAD上的效果:思路:當手指觸摸到屏幕的時候在onTouchStart 事件中在手指觸摸的位置上添加一個圓;當手指開始滑動的時候在onTouchMove中不斷的從上一個觸摸點到下一個點畫線條。HTML:

復制代碼代碼如下:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" /p p html xmlns="http://www.w3.org/1999/xhtml"
head
title Canvas /title
meta name = "viewport" content = "width = device-width, user-scalable = no"
/head
body
canvas id="canvas" /canvas
script type="text/javascript" src="canvasScript.js" charset="utf-8" /script
/body
/html

JS:

復制代碼代碼如下:
//get canvas
var canvas = document.getElementById("canvas");
//full screen
canvas.width=window.innerWidth;
canvas.height=window.innerHeight;
//是否支持觸摸
var touchable = 'createTouch' in document;
if (touchable) {
canvas.addEventListener('touchstart', onTouchStart, false);
canvas.addEventListener('touchmove', onTouchMove, false);
}
else
{
alert("touchable is false !");
}
//上一次觸摸坐標
var lastX;
var lastY; /p p var ctx =canvas.getContext("2d");
ctx.lineWidth=10;//畫筆粗細
ctx.stroke ;//畫筆顏色 /p p //觸摸開始事件
function onTouchStart(event) {
event.preventDefault();
lastX=event.touches[0].clientX;
lastY=event.touches[0].clientY;
drawRound(lastX,lastY); /p p }
//觸摸滑動事件
function onTouchMove(event) {
try
{
event.preventDefault();
drawLine(lastX,lastY,event.touches[0].clientX,event.touches[0].clientY);
lastX=event.touches[0].clientX;
lastY=event.touches[0].clientY;
}
catch(err){
alert( err.description);
} /p p } /p p //畫圓
function drawRound(x,y)
{
ctx.fill ;
ctx.beginPath();
ctx.arc(x,y,5,0,Math.PI*2,true);
ctx.closePath();
ctx.fill();
}
//畫線
function drawLine(startX,startY,endX,endY)
{
ctx.beginPath();
ctx.lineCap="round";
ctx.moveTo(startX,startY);
ctx.lineTo(endX,endY);
ctx.stroke();
}

關鍵點:ctx.lineCap= round ; 設置所畫線條結束的樣式帽為圓形。這個很關鍵,不然在線條角度變化大的地方會出現斷帶。event.preventDefault();取消事件的默認動作。在滑動事件中一定要調這個方法。不然滑動時就會觸發瀏覽器默認的滑動事件,就會發生頁面下拉的效果,你就畫不了畫嘍。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长乐市| 巨野县| 桐城市| 桑植县| 张家港市| 延边| 崇阳县| 江口县| 富锦市| 天台县| 冕宁县| 博客| 永嘉县| 安远县| 星子县| 云和县| 江西省| 柳江县| 齐河县| 二手房| 长武县| 永州市| 高平市| 武宁县| 苗栗市| 泰和县| 丹巴县| 天水市| 新密市| 吉安县| 五寨县| 乌拉特后旗| 鹤庆县| 长宁县| 宜章县| 商洛市| 天镇县| 龙海市| 鹰潭市| 三明市| 任丘市|