js+canvas實(shí)現(xiàn)畫板功能
本文實(shí)例為大家分享了js+canvas實(shí)現(xiàn)畫板功能的具體代碼,供大家參考,具體內(nèi)容如下
1.實(shí)現(xiàn)了畫圖,改變畫筆粗細(xì),改變畫筆顏色,清屏功能
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>畫板</title> <link rel="shortcut icon" type="image/x-icon" href="img/an.ico" /> <link rel="stylesheet" type="text/css" href="css/drow.css" /> </head> <body> <canvas id="mycanvas" width="1100px" height="660px"></canvas> <div class="tool"> 畫筆顏色:<input type="color" name="color1" id="color1"/><br /> 畫筆粗細(xì):<input type="range" name="range1" id="range1"min="1" max="20"/><br /> <button class="btn">清屏</button> </div> </body> <script src="js/drow.js" type="text/javascript" charset="utf-8"></script> </html>
*{
margin: 0;
padding: 0;
text-align: left;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
}
#mycanvas{
border: 2px solid deepskyblue;
}
.tool{
width: 260px;
height: 100%;
position: fixed;
right: 0;
top: 0;
background-color: #CCCCCC;
}
//獲取對象
var mycanvas = document.getElementById("mycanvas");
var color1 = document.getElementById("color1");
var range1 = document.getElementById("range1");
var btn = document.getElementsByClassName("btn")[0];
var contxt = mycanvas.getContext("2d");
btn.onclick=function () {
contxt.clearRect(0,0,1200,660);
}
var flag = false;
var x = 0,
y = 0;
// 鼠標(biāo)點(diǎn)下事件
mycanvas.onmousedown = function(event) {
flag = true;
// 獲取鼠標(biāo)點(diǎn)下的開始位置
var x = event.clientX - mycanvas.offsetLeft;
var y = event.clientY - mycanvas.offsetTop;
contxt.beginPath(); // 開始新建路徑
contxt.strokeStyle = color1.value; // 獲得顏色賦值給畫筆
contxt.lineCap="round";
contxt.lineWidth = range1.value; // 獲得畫筆寬度賦值給畫筆
contxt.moveTo(x, y); // 開始位置
}
// 鼠標(biāo)移動事件
mycanvas.onmousemove = function(event) {
// 獲取鼠標(biāo)在移動的位置
var mX = event.clientX - mycanvas.offsetLeft;
var mY = event.clientY - mycanvas.offsetTop;
if (flag) {
contxt.lineTo(mX, mY); // 移動途中和結(jié)束位置
contxt.stroke(); // 結(jié)束渲染畫布
}
}
// 鼠標(biāo)松開事件
mycanvas.onmouseup = function() {
flag = false;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Bootstrap+jQuery.validate實(shí)現(xiàn)表單驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了基于Bootstrap+jQuery.validate實(shí)現(xiàn)表單驗(yàn)證,感興趣的小伙伴們可以參考一下2016-05-05
關(guān)于javascript函數(shù)的幾個話題
關(guān)于javascript函數(shù)的幾個話題...2007-03-03
javascript實(shí)現(xiàn)全屏頁面滾動效果
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)全屏頁面滾動效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
BootStrap中Datetimepicker和uploadify插件應(yīng)用實(shí)例小結(jié)
這篇文章主要介紹了BootStrap中Datetimepicker和uploadify插件應(yīng)用實(shí)例小結(jié)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05
javascript實(shí)現(xiàn)簡單的省市區(qū)三級聯(lián)動
本文給大家反映的是javascript實(shí)現(xiàn)的簡單的省市區(qū)三級聯(lián)動特效,不需要訪問后臺服務(wù)器端,不使用Ajax,無刷新,純JS實(shí)現(xiàn)的省市區(qū)三級聯(lián)動。當(dāng)省市區(qū)數(shù)據(jù)變動是只需調(diào)正js即可。2015-05-05
JavaScript返回網(wǎng)頁中超鏈接數(shù)量的方法
這篇文章主要介紹了JavaScript返回網(wǎng)頁中超鏈接數(shù)量的方法,使用javascript中的document.links實(shí)現(xiàn)這一功能,需要的朋友可以參考下2015-04-04
JavaScript setTimeout()基本用法有哪些
這篇文章主要介紹了JavaScript setTimeout()基本用法有哪些,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
JavaScript 隱式類型轉(zhuǎn)換規(guī)則詳解
這篇文章主要為大家介紹了JavaScript 隱式類型轉(zhuǎn)換規(guī)則詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2023-05-05

