亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS+HTML5 Canvas實現簡單的寫字板功能示例

2019-11-19 13:06:39
字體:
來源:轉載
供稿:網友

本文實例講述了JS+HTML5 Canvas實現簡單的寫字板功能。分享給大家供大家參考,具體如下:

先來看運行效果:

具體代碼如下:

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>www.49028c.com JS寫字板</title>    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>    <style type="text/css">        body,html {            padding: 0;            margin: 0;        }        a,div,span {            font-family: "Arial","Microsoft YaHei","黑體","宋體",sans-serif;        }        .canvas-box {            display: block;            margin: 40px auto;            background: #f5f5f5;        }        .color-box {            width: 1080px;            display: block;            margin: 20px auto;            text-align: center;        }        .color-item {            display: inline-block;            vertical-align: middle;            width: 48px;            height: 24px;            margin: 10px;            background: #989898;            cursor: pointer;        }        .red {            background: #e01d5b;        }        .blue {            background: #1d6ae0;        }        .green {            background: #1de087;        }        .yellow {            background: #f3e41d;        }        .orange {            background: #f9850b;        }        .black {            background: #333;        }        .color-item.active {            border: solid 3px #565656;        }        .btn {            display: block;            width: 120px;            height: 40px;            line-height: 40px;            margin: 10px auto;            text-align: center;            font-size: 18px;            border: solid 1px #999;            border-radius: 5px;            cursor: pointer;        }    </style></head><body>    <canvas class="canvas-box" id="canvas"></canvas>    <div class="color-box">        <span class="color-item red"></span>        <span class="color-item blue"></span>        <span class="color-item green"></span>        <span class="color-item yellow"></span>        <span class="color-item orange"></span>        <span class="color-item black active"></span>    </div>    <div class="btn" onclick="clearDraw()">清除</div><script type="text/javascript">var    canvas = document.getElementById('canvas');var    context = canvas.getContext("2d");var    isDraw = false; //定義變量控制畫筆是否可用var movePos;         //定義變量存放初始畫筆開始位置var linWidth = 10;var linColor = '#333';window.onload = function(){    draw();}function draw(){    canvas.width = 500;    canvas.height = 500;    context.strokeStyle = "red";    context.lineWidth = 10;    context.beginPath();    context.strokeRect(0,0,500,500);    //設置畫筆顏色,寬度    context.strokeStyle = "red";    context.lineWidth = 1;    //使線段連續,圓滑    context.lineCap = "round";    context.lineJoin = "round";    drawDashedLine(context,0,0,500,500);    drawDashedLine(context,0,500,500,0);    drawLine(context,0,250,500,250);    drawLine(context,250,0,250,500);}//畫虛線(參照網上大神)function drawDashedLine(context, x1, y1, x2, y2, dashLength) {  dashLength = dashLength === undefined ? 5 : dashLength;  var deltaX = x2 - x1;  var deltaY = y2 - y1;  var numDashes = Math.floor(   Math.sqrt(deltaX * deltaX + deltaY * deltaY) / dashLength);   for (var i=0; i < numDashes; ++i) {   context[ i % 2 === 0 ? 'moveTo' : 'lineTo' ]    (x1 + (deltaX / numDashes) * i, y1 + (deltaY / numDashes) * i);   }  context.stroke();};//畫直線function drawLine(context,x1,y1,x2,y2){    context.moveTo(x1,y1);    context.lineTo(x2,y2);    context.stroke();};//獲取鼠標相對與canvas位置function getPos(x,y){    var box = canvas.getBoundingClientRect();    return {x: x-box.left,y: y-box.top};};//畫筆function drawing(e){    if(isDraw){        var position = getPos(e.clientX,e.clientY);        context.strokeStyle = linColor;        context.lineWidth = linWidth;        context.save();        context.beginPath();        context.moveTo(movePos.x,movePos.y);        context.lineTo(position.x,position.y);        context.stroke();        movePos = position;        context.restore();    }}//鼠標點下canvas.onmousedown = function(e){    isDraw = true;    movePos = getPos(e.clientX,e.clientY);    drawing(e);}//鼠標移動canvas.onmousemove = function(e){    drawing(e);}//鼠標松開canvas.onmouseup = function(e){    isDraw = false;}//鼠標離開canvas.onmouseout =function(e){    isDraw = false;}//選擇畫筆顏色$('.color-item').on('click',function(){    $(this).addClass('active').siblings().removeClass('active');    linColor = $(this).css('background-color');});//清除function clearDraw(){    context.clearRect(0,0,500,500);    draw();}</script></body></html>

感興趣的朋友還可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.VeVB.COm/code/HtmlJsRun測試上述代碼,親身體驗一下運行效果。

更多關于JavaScript相關內容還可查看本站專題:《JavaScript+HTML5特效與技巧匯總》、《JavaScript圖形繪制技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人久久免费视频| 欧美性猛交xxxx富婆弯腰| 九九精品在线观看| 国模gogo一区二区大胆私拍| 91产国在线观看动作片喷水| 国产精品免费福利| 国产精品国内视频| 日韩免费在线播放| 日韩禁在线播放| 国产91精品久| 国产亚洲精品美女久久久| 国产精品人人做人人爽| 欧美视频国产精品| 久久福利视频网| 97视频网站入口| 亚洲精品在线91| 亚洲成人激情在线| 亚洲电影免费观看| 热久久免费国产视频| 91久久嫩草影院一区二区| 亚洲黄色www| 俺去亚洲欧洲欧美日韩| 久久婷婷国产麻豆91天堂| 亚洲精品网址在线观看| 亚洲成人黄色在线| 69视频在线播放| 亚洲石原莉奈一区二区在线观看| 久久青草福利网站| 日韩中文字幕网| 久久综合网hezyo| 国产亚洲精品高潮| 日韩大片免费观看视频播放| 亚洲最大的网站| 日韩欧美999| 欧美成年人网站| 日韩精品欧美激情| 国产精品视频一区国模私拍| 国产香蕉一区二区三区在线视频| 在线视频免费一区二区| 久久国产加勒比精品无码| 欧美裸身视频免费观看| 久久久久久国产精品| 欧美大胆a视频| 欧美激情xxxx| 5566成人精品视频免费| 日韩精品福利在线| 欧美日韩国产中文精品字幕自在自线| 米奇精品一区二区三区在线观看| 国产精品男女猛烈高潮激情| 欧美另类极品videosbest最新版本| 亚洲精品免费一区二区三区| 欧美午夜片欧美片在线观看| 国产黑人绿帽在线第一区| 国产精品久久久久999| 国产精品视频公开费视频| 亚洲欧美激情在线视频| 日韩av毛片网| 精品中文字幕乱| 欧美一性一乱一交一视频| 91久久精品日日躁夜夜躁国产| 欧美性xxxxxxx| 久久久久国产精品www| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品成人品| 色综久久综合桃花网| 97精品一区二区视频在线观看| 国产精品欧美激情| 亚洲中国色老太| 国产99久久精品一区二区 夜夜躁日日躁| 欧美日韩福利在线观看| 国产精品电影观看| 国产狼人综合免费视频| 欧美激情一区二区三区成人| 精品一区精品二区| 亚洲午夜性刺激影院| 日本91av在线播放| 午夜精品久久久久久久99热浪潮| 日本成人激情视频| 国产香蕉精品视频一区二区三区| 欧美激情国产高清| 中文字幕亚洲国产| 欧美一乱一性一交一视频| 亚洲欧美日韩在线一区| 久久亚洲综合国产精品99麻豆精品福利| 国产亚洲欧洲高清| 亚洲精品久久久久久久久久久久久| 日韩成人xxxx| 久久6免费高清热精品| 欧美大片欧美激情性色a∨久久| 中文字幕av一区中文字幕天堂| 日韩av片电影专区| 久久精品国产一区二区电影| 中文欧美在线视频| 亚洲区bt下载| 亚洲最大成人在线| 成人黄色中文字幕| 欧美性一区二区三区| 欧美大人香蕉在线| 欧美最猛黑人xxxx黑人猛叫黄| 5566成人精品视频免费| 日韩va亚洲va欧洲va国产| 欧美性高潮在线| 中文字幕综合在线| 亚洲热线99精品视频| 欧美性xxxxxxxxx| 精品久久久久久中文字幕大豆网| 亚洲免费中文字幕| 中文字幕国产亚洲2019| 人妖精品videosex性欧美| 欧美另类老女人| 久久天天躁狠狠躁夜夜躁| 色综合男人天堂| 欧美与欧洲交xxxx免费观看| 日韩风俗一区 二区| 97国产在线观看| 久久免费国产精品1| 国产香蕉一区二区三区在线视频| 精品久久香蕉国产线看观看gif| 国产精品福利在线观看| 亚洲一区二区中文字幕| 久久影视电视剧免费网站清宫辞电视| 亚洲偷熟乱区亚洲香蕉av| 91久久久在线| 国产精品视频自拍| 在线色欧美三级视频| 成人av番号网| 亚洲成人久久电影| 91久久精品日日躁夜夜躁国产| 久久精品99无色码中文字幕| 亚洲电影成人av99爱色| 精品亚洲va在线va天堂资源站| 欧美日韩在线观看视频| 成人福利视频在线观看| 欧美高清电影在线看| 成人在线播放av| 日韩美女免费视频| 日韩人在线观看| 亚洲免费电影一区| 久久电影一区二区| 国产精品视频大全| 久久影院资源网| 91精品久久久久久久久青青| 欧美激情视频网址| 一区二区三区视频在线| 91最新国产视频| 欧美视频在线观看 亚洲欧| 中文字幕亚洲一区二区三区五十路| 欧美老少做受xxxx高潮| 久久手机精品视频| 91高清免费视频| 日韩一中文字幕| 欧美做爰性生交视频| 亚洲国产成人精品久久| 九九精品视频在线| 国产日韩视频在线观看| 亚洲色图35p| 精品日韩美女的视频高清| 成人免费网视频| 亚洲国产欧美一区二区丝袜黑人| 精品女厕一区二区三区| 最近2019中文字幕mv免费看| 91精品久久久久久久| 69久久夜色精品国产7777| 久久最新资源网|