2017-04-13 61 views
0

我有一个div,我已经给颜色渐变。就像这样 - JSFiddleJQuery获得div的背景颜色与梯度

编辑--- 我希望能够在任何点选择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; 
} 

(...)函数是给我一个错误在删除(份[0])线,这是因为部件变量是匹配后空()上它被执行的hexc。

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

感谢

回答

0

嗯,我看不出到底是什么你正在尝试做的,但有一个想法,我确实看到了一些问题,这可能阻止你的代码。这里的部分问题;当技术上没有设置该值时,您试图访问CSS的“background-color”属性。相反,你应该只访问“背景”属性。

$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函数获取值,因为您正在访问背景颜色而不是“背景”。

+0

感谢您的帮助。我改变了从'background-color'到'background'的属性,但它仍然不起作用。 –