修复 colorpicker 当修改 rgba 值时自动变成 16 进制的问题

pull/1145/head
贤心 2022-10-07 23:09:44 +08:00
parent 696c93bf3d
commit 5483cc87f0
1 changed files with 22 additions and 19 deletions

View File

@ -415,20 +415,23 @@ layui.define(['jquery', 'lay'], function(exports){
,change = function(x,y,z,a){ ,change = function(x,y,z,a){
that.select(x, y, z); that.select(x, y, z);
var rgb = HSBToRGB({h:x, s:y, b:z}); var rgb = HSBToRGB({h:x, s:y, b:z});
var color = HSBToHEX({h:x, s:y, b:z});
var elemInput = that.elemPicker.find('.' + PICKER_INPUT).find('input');
i.addClass(ICON_PICKER_DOWN).removeClass(ICON_PICKER_CLOSE); i.addClass(ICON_PICKER_DOWN).removeClass(ICON_PICKER_CLOSE);
span[0].style.background = 'rgb('+ rgb.r +', '+ rgb.g +', '+ rgb.b +')'; span[0].style.background = 'rgb('+ rgb.r +', '+ rgb.g +', '+ rgb.b +')';
if(type === 'torgb'){ if(type === 'torgb'){
that.elemPicker.find('.' + PICKER_INPUT).find('input').val('rgb('+ rgb.r +', '+ rgb.g +', '+ rgb.b +')'); elemInput.val('rgb('+ rgb.r +', '+ rgb.g +', '+ rgb.b +')');
}; } else if(type === 'rgba'){
if(type === 'rgba'){
var left = 0; var left = 0;
left = a * 280; left = a * 280;
alphaslider.css("left", left); alphaslider.css("left", left);
that.elemPicker.find('.' + PICKER_INPUT).find('input').val('rgba('+ rgb.r +', '+ rgb.g +', '+ rgb.b +', '+ a +')'); elemInput.val('rgba('+ rgb.r +', '+ rgb.g +', '+ rgb.b +', '+ a +')');
span[0].style.background = 'rgba('+ rgb.r +', '+ rgb.g +', '+ rgb.b +', '+ a +')'; span[0].style.background = 'rgba('+ rgb.r +', '+ rgb.g +', '+ rgb.b +', '+ a +')';
alphacolor[0].style.background = 'linear-gradient(to right, rgba('+ rgb.r +', '+ rgb.g +', '+ rgb.b +', 0), rgb('+ rgb.r +', '+ rgb.g +', '+ rgb.b +'))' alphacolor[0].style.background = 'linear-gradient(to right, rgba('+ rgb.r +', '+ rgb.g +', '+ rgb.b +', 0), rgb('+ rgb.r +', '+ rgb.g +', '+ rgb.b +'))'
} else {
elemInput.val('#'+ color);
}; };
//回调更改的颜色 //回调更改的颜色
@ -569,13 +572,13 @@ layui.define(['jquery', 'lay'], function(exports){
//颜色选择器hsb转换 //颜色选择器hsb转换
Class.prototype.select = function(h, s, b, type){ Class.prototype.select = function(h, s, b, type){
var that = this var that = this;
,options = that.config var options = that.config;
,hex = HSBToHEX({h:h, s:100, b:100}) var hex = HSBToHEX({h:h, s:100, b:100});
,color = HSBToHEX({h:h, s:s, b:b}) var color = HSBToHEX({h:h, s:s, b:b});
,sidetop = h/360*180 var sidetop = h/360*180;
,top = 180 - b/100*180 - 3 var top = 180 - b/100*180 - 3;
,left = s/100*260 - 3; var left = s/100*260 - 3;
that.elemPicker.find('.' + PICKER_SIDE_SLIDER).css("top", sidetop); //滑块的top that.elemPicker.find('.' + PICKER_SIDE_SLIDER).css("top", sidetop); //滑块的top
that.elemPicker.find('.' + PICKER_BASIS)[0].style.background = '#' + hex; //颜色选择器的背景 that.elemPicker.find('.' + PICKER_BASIS)[0].style.background = '#' + hex; //颜色选择器的背景
@ -589,7 +592,7 @@ layui.define(['jquery', 'lay'], function(exports){
if(type === 'change') return; if(type === 'change') return;
// 选中的颜色 // 选中的颜色
that.elemPicker.find('.' + PICKER_INPUT).find('input').val('#' + color); // that.elemPicker.find('.' + PICKER_INPUT).find('input').val('#'+ color);
}; };
Class.prototype.pickerEvents = function(){ Class.prototype.pickerEvents = function(){
@ -654,7 +657,7 @@ layui.define(['jquery', 'lay'], function(exports){
//输入框事件 //输入框事件
elemPickerInput.on('keyup', function(e){ elemPickerInput.on('keyup', function(e){
var othis = $(this) var othis = $(this);
pickerEvents.confirm.call(this, othis, e.keyCode === 13 ? null : 'change'); pickerEvents.confirm.call(this, othis, e.keyCode === 13 ? null : 'change');
}); });
} }