王新阳

wangxinyang

一个不错的js颜色选择器

https://github.com/claviska/jquery-minicolors

演示: http://www.jq22.com/jquery-info204

更多js拾色器:http://www.jq22.com/jquery-plugins%E6%8B%BE%E8%89%B2%E5%99%A8-1-jq

如果同步设置input背景色,可能会出现input内text颜色与背景色难以区分的情况,可以使用如下方法自动设置文字颜色:(hex为获取到的颜色,如:#ffcc00)

var r = parseInt(hex.substr(1, 2), 16);
var g = parseInt(hex.substr(3, 2), 16);
var b = parseInt(hex.substr(5, 2), 16);
var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
$(this).css({'background-color':hex, 'color': (yiq >= 128) ? 'black' : 'white'});

配置:

$('.js-color-input').each( function() {
	$(this).minicolors({
		control: $(this).attr('data-control') || 'hue',
		defaultValue: $(this).attr('data-defaultValue') || '#ff0000',
		format: $(this).attr('data-format') || 'hex',
		keywords: $(this).attr('data-keywords') || '',
		inline: $(this).attr('data-inline') === 'true',
		letterCase: $(this).attr('data-letterCase') || 'lowercase',
		opacity: $(this).attr('data-opacity'),
		position: $(this).attr('data-position') || 'bottom',
		swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [],
		change: function(hex, opacity){
			if(! hex)return;
			var r = parseInt(hex.substr(1, 2), 16);
			var g = parseInt(hex.substr(3, 2), 16);
			var b = parseInt(hex.substr(5, 2), 16);
			var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
			$(this).css({'background-color':hex, 'color': (yiq >= 128) ? 'black' : 'white'});
		},
		theme: 'default',
	});
});


2018-09-19
2024-11-23 星期六 农历十月二十三