在Fabric JS上大写文本输入

时间:2017-06-08 12:22:49

标签: javascript html5 event-handling html5-canvas fabricjs

我打算写一个HTML5画布。我正在使用FabricJS。但是,我希望文本输入是大写的,用户不必使用“大写锁定”。

我试过了

textbox.hiddenTextarea.autoCapitalize =“on”;

让textbox = new fabric.IText(“”,{             textAlign:“center”,
            autoCapitalize:“on”,

}

我甚至尝试过:

textbox.hiddenTextarea.onkeyup =(e)=> {             e.target.value = e.target.value.toUpperCase(); }

没有任何作用。做我想要达到的目标的正确方法是什么?还是有任何黑客攻击?请指出我正确的方向。

2 个答案:

答案 0 :(得分:0)

您可以使用此语法。 然后请获取activeObject。

activeObject.set('fontCharacterStyle', 'Caps');

答案 1 :(得分:0)

我创建了一个 IText 的子类来允许将 textTransformation 设置为大写:

const TransformableText = fabric.util.createClass(fabric.IText, {
  _splitTextIntoLines: function() {
    const transformedText = this.textTransform === 'uppercase' ? this.text.toUpperCase() : this.text;

    return this.callSuper('_splitTextIntoLines', transformedText);
  },
});

可以用作:

const textbox = new TransformableText("", { textTransform: "uppercase" });