2017-04-13 73 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'的屬性,但它仍然不起作用。 –