0

我正在使用jscolor并注意到它会根据所选颜色自动更改文本颜色。示例:如果我选择黑色背景颜色,它会自动将文本颜色更改为白色。无论如何要禁用此功能?

4

4 回答 4

0

朱利安:

从 JSColor 中注释掉以下代码行

this.styleElement = target; // where to reflect current color 

它调用一个设置目标输入字段样式的函数。

于 2013-04-08T21:56:06.777 回答
0

试着找到这个:

   this.exportColor = function(flags) {
            if(!(flags & leaveValue) && valueElement) {
                var value = this.toString();
                if(this.caps) { value = value.toUpperCase(); }
                if(this.hash) { value = '#'+value; }
                valueElement.value = value;
            }
            if(!(flags & leaveStyle) && styleElement) {
                styleElement.style.backgroundImage = "none";
                styleElement.style.backgroundColor =
                    '#'+this.toString();
                styleElement.style.color =
                    0.213 * this.rgb[0] +
                    0.715 * this.rgb[1] +
                    0.072 * this.rgb[2]
                    < 0.5 ? '#FFF' : '#000';
            }
            if(!(flags & leavePad) && isPickerOwner()) {
                redrawPad();
            }
            if(!(flags & leaveSld) && isPickerOwner()) {
                redrawSld();
            }
        };

编辑这些行:

                    styleElement.style.color =
                    0.213 * this.rgb[0] +
                    0.715 * this.rgb[1] +
                    0.072 * this.rgb[2]
                    < 0.5 ? '#FFF' : '#000';

也许

                styleElement.style.color =
                    0.213 * this.rgb[0] +
                    0.715 * this.rgb[1] +
                    0.072 * this.rgb[2]
                    < 0.5 ? '#000' : '#000';

如果你想让它稍微整洁一点

styleElement.style.color = '#000';

这可以完全隐藏文本

styleElement.style.color = 'transparent';
于 2013-08-06T12:01:45.187 回答
0

在源文件中找到以下代码:

if (this.valueElement) {
            if (jsc.isElementType(this.valueElement, 'input')) {
                var updateField = function () {
                    THIS.fromString(THIS.valueElement.value, jsc.leaveValue);
                    jsc.dispatchFineChange(THIS);
                };
                jsc.attachEvent(this.valueElement, 'keyup', updateField);
                jsc.attachEvent(this.valueElement, 'input', updateField);
                jsc.attachEvent(this.valueElement, 'blur', blurValue);
                this.valueElement.setAttribute('autocomplete', 'off');
            }
        }

只需评论那些 attachEvent 例如,如果您不希望文本字段在从颜色面板中选择颜色后更新其背景颜色,只需评论“输入”行。

于 2015-11-27T04:17:17.853 回答
0

添加styleElement.style.color = 'transparent';可以从输入字段中删除文本值,但它不适用于“字体颜色”属性。

相反,我申请了

styleElement.style.color = '#' + this.toString();

从输入字段中删除的文本值和 font-color 属性也有效。

谢谢

于 2015-09-30T10:52:13.247 回答