JSColor自动文本颜色变化

时间:2013-04-01 19:09:40

标签: javascript jscolor

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

4 个答案:

答案 0 :(得分:0)

儒略:

注释掉JSColor

中的以下代码行
this.styleElement = target; // where to reflect current color 

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

答案 1 :(得分: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';

答案 2 :(得分:0)

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

相反,我申请了

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

此输入字段和font-color属性中删除的文本值也正常工作。

由于

答案 3 :(得分: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 例如,如果您不希望文本字段在从颜色面板中选择颜色后更新其背景颜色,则只需注释“输入”行。