首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将颜色选择器(jquery UI滑块)连接到Sketch.js

将颜色选择器(jquery UI滑块)连接到Sketch.js
EN

Stack Overflow用户
提问于 2013-06-13 12:05:13
回答 1查看 1.1K关注 0票数 1

我致力于建立一个颜色选择器,我计划用它来控制Sketch.js草图的颜色选择。根据Sketch.js文档,“标记”工具将从任何包含“数据颜色”字段的标签中获取其颜色信息,并指向画布id,如下所示:

代码语言:javascript
复制
<a href="#myCanvas" data-color=""></a>

我的颜色滑块found here现在正在将hsl/rgb数据发送到小提琴示例中滑块下看到的框。我想完全删除该框,只需将滑块的值发送到标记工具的值即可。在我的测试页面上检查元素时,我看到jquery-ui.js控制包含滑块的元素的创建,在jquery-ui.js的第12691行是以下函数:

代码语言:javascript
复制
    _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字段添加到其中,以便:

代码语言:javascript
复制
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绘制了该颜色。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 15:56:55

似乎Sketch.js期望十六进制值作为输入。在使用元素的背景颜色作为它现在的十六进制值之后,我可以提出一个解决方案。

See fiddle

JS代码

代码语言:javascript
复制
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

代码语言:javascript
复制
$('body').delegate "a[href=\"##{@canvas.attr('id')}\"]", 'click', (e)->
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17079029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档