JQuery使用渐变获得div的背景颜色

时间:2017-04-13 02:34:16

标签: jquery css jquery-ui slider

我有一个div,我给了渐变色。这样的事情 - https://i.stack.imgur.com/0hztR.png

编辑--- 我希望能够在任何时候选择div的颜色。我该怎么做?

$('.color-div').slider({
        slide: function(event, ui) {
            $color = hexc($('.color-div').css('background-color')); //not working
            $('.color-div').slider().find('.ui-slider-handle').css('background-color', $color);
        },
    });

function hexc(colorval) {
    var color = '';
    var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    delete(parts[0]);
    for (var i = 1; i <= 3; ++i) {
        parts[i] = parseInt(parts[i]).toString(16);
        if (parts[i].length == 1) parts[i] = '0' + parts[i];
    }
    color = '#' + parts.join('');
    return color;
}

hexc(...)函数在delete(parts [0])行给出了一个错误,因为在对它执行match()之后,parts变量为null。

如何在滑块移动时获取滑块的颜色,以便我可以将其指定给滑块手柄。我也想要那种颜色,所以我可以执行代码的其他部分。

由于

1 个答案:

答案 0 :(得分:0)

好吧,我无法确切地看到你想要做什么,但有一个想法,我确实看到了代码可能会阻止你的一些问题。部分问题在这里;你正试图访问&#34;背景颜色&#34; CSS的属性,从技术上讲,该值未设置。相反,你应该只访问&#34;背景&#34;属性。

$color = hexc($('.color-div').css('background')); 

从这些主板上的另一个答案中获取,这是你在jQuery中控制(或改变......)背景渐变值的方法:

$(this).css('background', '-webkit-gradient(linear,left top,left bottom,from(#f4f4f4),to(#FFFFFF))');​​​​​​​

看起来你的解决方案很接近,你可能只需要更改jQuery来访问和修改类似于上面的背景变量。 jQuery(和css)可以非常具体地使用这样的东西。您可能无法使用hexc函数获取值,因为您正在访问背景颜色而不仅仅是&#34;背景&#34;。