我致力于建立一个颜色选择器,我计划用它来控制Sketch.js草图的颜色选择。根据Sketch.js文档,“标记”工具将从任何包含“数据颜色”字段的标签中获取其颜色信息,并指向画布id,如下所示:
<a href="#myCanvas" data-color=""></a>我的颜色滑块found here现在正在将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和data-color字段添加到其中,以便:
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绘制了该颜色。
发布于 2013-06-13 15:56:55
似乎Sketch.js期望十六进制值作为输入。在使用元素的背景颜色作为它现在的十六进制值之后,我可以提出一个解决方案。
See fiddle
JS代码
slide: function (event, ui) {
//console.log('/'+hsl(ui.value, 100%, 50%));
//$('#box').attr('data-color', 'hsl(' + ui.value + ', 100%, 50%)');
box.style.background = 'hsl(' + ui.value + ', 100%, 50%)';
var clr = $('#box').css('background-color');
$('#box').attr('data-color', clr).trigger('click');
}我必须触发框的点击,因为sketch.js已经将click绑定到code中的toollinks。
$('body').delegate "a[href=\"##{@canvas.attr('id')}\"]", 'click', (e)->https://stackoverflow.com/questions/17079029
复制相似问题