[英]HTML 5 brush color won't change value
So I have this really simple HTML that has a canvas, and a few buttons.所以我有这个非常简单的 HTML,它有一个 canvas 和几个按钮。 When I click the green button, or yellow.当我点击绿色按钮时,还是黄色的。 I would like it to change my brush's stroke color.我希望它改变我画笔的笔触颜色。 When I click the button nothing happens.当我单击按钮时,没有任何反应。 The color stays the same.颜色保持不变。
Here's my script and HTML: JS + JQuery 1.7.2这是我的脚本和 HTML:JS + JQuery 1.7.2
var canvas; $(function () { canvas = window._canvas = new fabric.Canvas('canvas'); canvas.backgroundColor = '#efefef'; canvas.isDrawingMode= 1; canvas.freeDrawingBrush.color = e.target.value; canvas.freeDrawingBrush.width = 1; canvas.renderAll(); document.getElementById('colorpicker').addEventListener('click', function (e) { console.log(e.target.value); canvas.freeDrawingBrush.color = e.target.value; }); });
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <canvas id="canvas" width="400" height="400" class="canvas"></canvas> <!-- <select name="colors" id="colorpick"> <option value="#FFFF00">Yellow</option> <option value="#000000">Black</option> <option value="#FF0000">Red</option> </select> --> <div id= "colorpicker"> <button id= "yellow" value= "FFFF00">yellow</button> <button id= "black" value= "000000">black</button> <button id= "green" value = "#00ff00">green</button> </div>
JSFiddle Link. JSFiddle 链接。 Works properly.工作正常。 I guess because of the JQuery.我猜是因为 JQuery。 http://jsfiddle.net/6zrm8tun/ http://jsfiddle.net/6zrm8tun/
You have 2 things wrong with your code:您的代码有两点错误:
e
before it exists which is an exception, set that to a default eg canvas.freeDrawingBrush.color = 'green'
您在e
存在之前引用它是一个例外,将其设置为默认值,例如canvas.freeDrawingBrush.color = 'green'
<button id="yellow" value="#FFFF00">
etc您正在分配颜色,但它不是以 hash 开头,更改为: <button id="yellow" value="#FFFF00">
等Working example: http://jsfiddle.net/ferahl/ph5cv6oa/2/工作示例: http://jsfiddle.net/ferahl/ph5cv6oa/2/
Try this buddy - need to tidy a few things up but I got this working in jsfiddle.试试这个伙伴 - 需要整理一些东西,但我在 jsfiddle 中得到了这个。
http://jsfiddle.net/nfbe076k/ http://jsfiddle.net/nfbe076k/
var canvas;
var yellow = document.getElementById('yellow');
var black = document.getElementById('black');
var green = document.getElementById('green');
$(function () {
canvas = window._canvas = new fabric.Canvas('canvas');
canvas.backgroundColor = '#efefef';
canvas.isDrawingMode= 1;
canvas.freeDrawingBrush.color = 'green';
canvas.freeDrawingBrush.width = 1;
canvas.renderAll();
yellow.addEventListener('click', function (e) {
canvas.freeDrawingBrush.color = '#' + this.value;
});
black.addEventListener('click', function (e) {
canvas.freeDrawingBrush.color = '#' + this.value;
});
green.addEventListener('click', function (e) {
canvas.freeDrawingBrush.color = '#' + this.value;
});
});
<div id="colorpicker">
<button id="yellow" value="FFFF00">yellow</button>
<button id="black" value="000000">black</button>
<button id="green" value="00ff00">green</button>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.