0

我正在使用 less,我想扩展 less 的基本功能,例如 rgba() 并添加我自己的自定义功能。例如 hextorgba() 可以直接将十六进制颜色转换为 rgba。我在 less 库中的 function.js 中添加了新函数,但是当我尝试使用它时它无法识别该函数。有人能帮我吗?

我在 lib 目录下的 function.js 文件中添加了该函数。这是functions.js的片段

tree.functions = {
    rgb: function (r, g, b) {
        return this.rgba(r, g, b, 1.0);
    },
    hextorgba: function(c){
        return this.rgba(this.red(c), this.green(c), this.blue(c), this.alpha(c));
    },

我也通过命令行使用less。我从 npm (npm install less) 安装了最新的 less 包。

4

1 回答 1

2

我得到了这个工作。代码中有两个问题。首先是在 hextorgba(...) 函数中。我不得不将其更改为以下内容,否则它会引发错误“non_object_property_loadError:错误评估函数hextorgba:无法读取未定义的属性'0'”

hextorgba: function(c, alpha){ // added the alpha parameter for opacity
    var rgb = c.rgb.map(function(c) {return scaled (c, 256); });
    return new(tree.Color)(rgb, alpha);
}

另一个问题是属性名称。我试图使用具有字符串转义问题的动态属性,例如文本橙色。我现在得到正确的结果。

于 2013-10-16T15:17:59.620 回答