gpt4 book ai didi

javascript - 如何在 fabricjs IText 中使选择突出显示透明?

转载 作者:行者123 更新时间:2023-11-29 21:16:32 25 4
gpt4 key购买 nike

我将 jscolor-colorpicker 与 fabricjs-IText 结合使用,使我可以实时预览鼠标移动时的颜色。现在唯一不酷的是半透明选择突出显示在文本编辑模式下弄乱了颜色预览。关于如何删除选择突出显示或使选择完全透明的任何想法?

我在 jsdoc 中找不到与选择颜色相关的任何属性!? http://fabricjs.com/docs/fabric.IText.html

<input value="ffcc00"  id="fill" class="jscolor {onFineChange:'itext_setcolor(this)',hash:true}">

window.itext_setcolor = function(val) {
obj = canvas.getActiveObject();
if (obj) {
if (obj.isEditing) {
setStyle(obj, 'fill', '#' +val);
} else
{
obj.setFill('#' + val);
}
canvas.renderAll();
}
};

编辑 1

感谢@STHayden 给我正确的答案。这是最终的工作代码,在文本选择更改时重新出现突出显示。

...
canvas.on('text:selection:changed', onTextChangedIText);
...
function onTextChangedIText() {
var obj = canvas.getActiveObject();
if (obj.selectionStart>-1) {
obj.set({'selectionColor':'rgba(17,119,255,0.3)'});
}
}

window.itext_setcolor = function(val) {
obj = canvas.getActiveObject();
if (obj) {
if (obj.isEditing) {
obj.set({'selectionColor':'transparent'});
setStyle(obj, 'fill', '#' +val);
} else
{
obj.setFill('#' + val);
}
canvas.renderAll();
}
};

最佳答案

您有很多选择。 IText 上用于选择颜色的属性是 selectionColor,您可以使用关键字 transparent 或 rgba 值将其设置为完全透明:rgba(0,0 ,0,0)

如果您获得了对 IText 对象的引用,您还可以做一些事情:

  1. startSelectionendSelection 更改为 0。
  2. 对 IText 对象调用 .exitEditing() 函数。
  3. 只需使用 .discardActiveObject() 将 IText 对象移除为事件对象

当您完成让用户选择颜色后,您可以将选择设置回原来的颜色。

关于javascript - 如何在 fabricjs IText 中使选择突出显示透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39202319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com