【发布时间】:2017-01-05 06:03:55
【问题描述】:
我将 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® 问题。请参阅iText documentation on Stack Overflow 了解可标记为 iText 问题的技术。来自fabricjs 的人将商标名称iText 用于完全不同的东西,造成不必要的混淆。
-
好的!删除了 iText 标记。
标签: javascript css fabricjs jscolor