我致力于将颜色选择器放在一起,我计划用它来控制使用Sketch.js绘制草图的颜色选择。根据 Sketch.js 文档,“标记”工具将从任何包含“数据颜色”字段的标签中获取颜色信息,并指向画布 ID,例如:
<a href="#myCanvas" data-color=""></a>
我在此处找到的颜色滑块现在正在将 hsl/rgb 数据发送到小提琴示例中滑块下方的框。我想完全删除该框,只需将滑块的值发送到标记工具的值即可。我在检查测试页面上的元素时看到 jquery-ui.js 控制包含滑块的元素的创建,在 jquery-ui.js 的第 12691 行是以下函数:
_createHandles: function() {
var i, handleCount,
options = this.options,
existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
handle = "<a id='slider-handle' class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
handles = [];
因此,我尝试将我的画布 ID 和数据颜色字段添加到其中,以便:
handle = "<a href='#myCanvas' data-color='' id='slider-handle' class='ui-slider-handle ui-state-default ui-corner-all'></a>"
然后我在控制台中亲眼观察了输出,滑块采用了该值,但由于某种原因,在绘制时,标记工具不会改变颜色。它仅在单击框时随框改变颜色。我知道我在这里遗漏了一些简单的东西,对于摆脱盒子的任何帮助表示赞赏。
编辑:也许 Sketch.js 将只接受十六进制值作为输入,尝试将 hsl/rgb 转换为十六进制,看看是否有效。编辑 2:情况并非如此,我试图在控制台中将点击框的值实时更改为 hsl 值,然后 Sketch.js 绘制了该颜色。