<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>draw</title>
<style>
#canvas {
border: 1px solid #000000;
}
</style>
<script>
//コードは省略
</script>
</head>
<body>
<canvas id="canvas" width="400px" height="300px"></canvas><br>
<input id="pallet" type="color" value="#000000;">
</body>
</html>
canvasの下にカラーパレットのinputタグを追加することで、
canvasの下にカラーパレットを呼び出せるボタンが追加されました。あとはこのパレットで選択した色を描写の際に反映させます。
<script>
var canvas;
var ctx;
//パレット用の変数
var pallet;
var drawFlag = false;
window.onload = function(){
canvas = document.querySelector("#canvas");
ctx = canvas.getContext("2d");
//ここでパレットのオブジェクトを取得しておく
pallet = document.querySelector("#pallet");
canvas.addEventListener("mousemove", function(event){
if (drawFlag === true) {
var x = event.offsetX;
var y = event.offsetY;
//パレットで決めた色を点の描写直前で決めておく
ctx.fillStyle = pallet.value;
ctx.fillRect(x, y, 2, 2);
}
});
canvas.addEventListener("mousedown", function(event){
drawFlag = true;
});
canvas.addEventListener("mouseup", function(event){
drawFlag = false;
});
};
</script>パレットの値は他のアプリでフォームの取得の時と同様でdocument.querySelectorでオブジェクト取得、変数.valueで値を取得という手順をとり、点の描写直前でfillStyleプロパティにカラーコードを入れます。
これでいろんな色でお絵かきできる様になりました。


0 件のコメント:
コメントを投稿