简体   繁体   English

HTML 5刷颜色不会改变值

[英]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:您的代码有两点错误:

  1. You're referencing e before it exists which is an exception, set that to a default eg canvas.freeDrawingBrush.color = 'green'您在e存在之前引用它是一个例外,将其设置为默认值,例如canvas.freeDrawingBrush.color = 'green'
  2. You're assigning the colour but it doesn't start with a hash, change to: <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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM