mirror of
https://github.com/PitPik/tinyColorPicker
synced 2025-07-02 23:54:29 -06:00
new method toString / optimization
Added method ‚toString‘ to colors.js; Converts color to HTML-string with auto or forced alpha. Some minor optimizations.
This commit is contained in:
parent
777b22aab4
commit
bd230e47ff
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2014 Peter Dematté
|
Copyright (c) 2016 Peter Dematté
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -99,10 +99,13 @@ After initializing Color or ColorPicker you'll get a clean but rhich model of th
|
|||||||
myColors: {
|
myColors: {
|
||||||
colors: { all kinds of color values... see later},
|
colors: { all kinds of color values... see later},
|
||||||
options: { all the options you set or that are set as default... },
|
options: { all the options you set or that are set as default... },
|
||||||
__proto__: { // all methods Color uses
|
__proto__: { // all methods Color uses (See https://github.com/PitPik/colorPicker for details)
|
||||||
setColor: function(newCol, type, alpha) {},
|
setColor: function(newCol, type, alpha) {},
|
||||||
setCustomBackground: function(col) {},
|
setCustomBackground: function(col) {},
|
||||||
saveAsBackground: function() {},
|
saveAsBackground: function() {},
|
||||||
|
// new method: converts current color to HTML-String like: rgba(123, 234, 0, 0.89)
|
||||||
|
// forceAlpha === true / false -> alway / never print alpha, === undefined -> auto
|
||||||
|
toString: function('rgb' || 'hsl' || 'hex' || '' -> 'rgb', forceAlpha) {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
66
colors.js
66
colors.js
@ -19,6 +19,9 @@
|
|||||||
HEX: {HEX: [0, 16777215]} // maybe we don't need this
|
HEX: {HEX: [0, 16777215]} // maybe we don't need this
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_Math = window.Math,
|
||||||
|
_round = _Math.round,
|
||||||
|
|
||||||
_instance = {},
|
_instance = {},
|
||||||
_colors = {},
|
_colors = {},
|
||||||
|
|
||||||
@ -83,6 +86,10 @@
|
|||||||
return setColor(this.colors, undefined, 'rgb', true);
|
return setColor(this.colors, undefined, 'rgb', true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Colors.prototype.toString = function(colorMode, forceAlpha) {
|
||||||
|
return ColorConverter.color2text(colorMode || 'rgba', this.colors, forceAlpha);
|
||||||
|
};
|
||||||
|
|
||||||
// ------------------------------------------------------ //
|
// ------------------------------------------------------ //
|
||||||
// ---------- Color calculation related stuff ---------- //
|
// ---------- Color calculation related stuff ---------- //
|
||||||
// -------------------------------------------------------//
|
// -------------------------------------------------------//
|
||||||
@ -112,7 +119,7 @@
|
|||||||
color.rgb = {r: rgb.r, g: rgb.g, b: rgb.b};
|
color.rgb = {r: rgb.r, g: rgb.g, b: rgb.b};
|
||||||
color.alpha = alpha;
|
color.alpha = alpha;
|
||||||
// color.RGBLuminance = getLuminance(RGB);
|
// color.RGBLuminance = getLuminance(RGB);
|
||||||
color.equivalentGrey = Math.round(grey.r * RGB.r + grey.g * RGB.g + grey.b * RGB.b);
|
color.equivalentGrey = _round(grey.r * RGB.r + grey.g * RGB.g + grey.b * RGB.b);
|
||||||
|
|
||||||
color.rgbaMixBlack = mixColors(rgb, {r: 0, g: 0, b: 0}, alpha, 1);
|
color.rgbaMixBlack = mixColors(rgb, {r: 0, g: 0, b: 0}, alpha, 1);
|
||||||
color.rgbaMixWhite = mixColors(rgb, {r: 1, g: 1, b: 1}, alpha, 1);
|
color.rgbaMixWhite = mixColors(rgb, {r: 1, g: 1, b: 1}, alpha, 1);
|
||||||
@ -151,7 +158,7 @@
|
|||||||
if (!RND[typ]) RND[typ] = {};
|
if (!RND[typ]) RND[typ] = {};
|
||||||
modes = colors[typ];
|
modes = colors[typ];
|
||||||
for(mode in modes) {
|
for(mode in modes) {
|
||||||
RND[typ][mode] = Math.round(modes[mode] * ranges[typ][mode][1]);
|
RND[typ][mode] = _round(modes[mode] * ranges[typ][mode][1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,7 +205,7 @@
|
|||||||
background.rgbaMixCustom[luminance]);
|
background.rgbaMixCustom[luminance]);
|
||||||
colors.rgbaMixBGMixCustom = rgbaMixBGMixCustom;
|
colors.rgbaMixBGMixCustom = rgbaMixBGMixCustom;
|
||||||
/* ------ */
|
/* ------ */
|
||||||
rgbaMixBGMixCustom.luminanceDelta = Math.abs(
|
rgbaMixBGMixCustom.luminanceDelta = _Math.abs(
|
||||||
rgbaMixBGMixCustom[luminance] - background.rgbaMixCustom[luminance]);
|
rgbaMixBGMixCustom[luminance] - background.rgbaMixCustom[luminance]);
|
||||||
rgbaMixBGMixCustom.hueDelta = getHueDelta(background.rgbaMixCustom, rgbaMixBGMixCustom, true);
|
rgbaMixBGMixCustom.hueDelta = getHueDelta(background.rgbaMixCustom, rgbaMixBGMixCustom, true);
|
||||||
/* ------ */
|
/* ------ */
|
||||||
@ -246,6 +253,25 @@
|
|||||||
return color;
|
return color;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
color2text: function(colorMode, colors, forceAlpha) {
|
||||||
|
var alpha = forceAlpha !== false && _round(colors.alpha * 100) / 100,
|
||||||
|
hasAlpha = typeof alpha === 'number' &&
|
||||||
|
forceAlpha !== false && (forceAlpha || alpha !== 1),
|
||||||
|
RGB = colors.RND.rgb,
|
||||||
|
HSL = colors.RND.hsl,
|
||||||
|
mode = colorMode.toLowerCase().substr(0, 3),
|
||||||
|
shouldBeHex = mode === 'hex' && hasAlpha,
|
||||||
|
isHex = mode === 'hex' && !shouldBeHex,
|
||||||
|
isRgb = mode === 'rgb' || shouldBeHex,
|
||||||
|
innerText = isRgb ? RGB.r + ', ' + RGB.g + ', ' + RGB.b :
|
||||||
|
HSL.h + ', ' + HSL.s + '%, ' + HSL.l + '%',
|
||||||
|
text = isHex ? '#' + colors.HEX : (shouldBeHex ? 'rgb' : mode) +
|
||||||
|
(hasAlpha ? 'a' : '') + '(' + innerText +
|
||||||
|
(hasAlpha ? ', ' + alpha : '') + ')';
|
||||||
|
|
||||||
|
return text;
|
||||||
|
},
|
||||||
|
|
||||||
RGB2HEX: function(RGB) {
|
RGB2HEX: function(RGB) {
|
||||||
return (
|
return (
|
||||||
(RGB.r < 16 ? '0' : '') + RGB.r.toString(16) +
|
(RGB.r < 16 ? '0' : '') + RGB.r.toString(16) +
|
||||||
@ -257,21 +283,21 @@
|
|||||||
HEX2rgb: function(HEX) {
|
HEX2rgb: function(HEX) {
|
||||||
HEX = HEX.split(''); // IE7
|
HEX = HEX.split(''); // IE7
|
||||||
return {
|
return {
|
||||||
r: parseInt(HEX[0] + HEX[HEX[3] ? 1 : 0], 16) / 255,
|
r: +('0x' + HEX[0] + HEX[HEX[3] ? 1 : 0]) / 255,
|
||||||
g: parseInt(HEX[HEX[3] ? 2 : 1] + (HEX[3] || HEX[1]), 16) / 255,
|
g: +('0x' + HEX[HEX[3] ? 2 : 1] + (HEX[3] || HEX[1])) / 255,
|
||||||
b: parseInt((HEX[4] || HEX[2]) + (HEX[5] || HEX[2]), 16) / 255
|
b: +('0x' + (HEX[4] || HEX[2]) + (HEX[5] || HEX[2])) / 255
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
hue2RGB: function(hue) {
|
hue2RGB: function(hue) {
|
||||||
var h = hue * 6,
|
var h = hue * 6,
|
||||||
mod = ~~h % 6, // Math.floor(h) -> faster in most browsers
|
mod = ~~h % 6, // _Math.floor(h) -> faster in most browsers
|
||||||
i = h === 6 ? 0 : (h - mod);
|
i = h === 6 ? 0 : (h - mod);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
r: Math.round([1, 1 - i, 0, 0, i, 1][mod] * 255),
|
r: _round([1, 1 - i, 0, 0, i, 1][mod] * 255),
|
||||||
g: Math.round([i, 1, 1, 1 - i, 0, 0][mod] * 255),
|
g: _round([i, 1, 1, 1 - i, 0, 0][mod] * 255),
|
||||||
b: Math.round([0, 0, i, 1, 1, 1 - i][mod] * 255)
|
b: _round([0, 0, i, 1, 1, 1 - i][mod] * 255)
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -291,13 +317,13 @@
|
|||||||
if (r < g) {
|
if (r < g) {
|
||||||
r = g + (g = r, 0);
|
r = g + (g = r, 0);
|
||||||
k = -2 / 6 - k;
|
k = -2 / 6 - k;
|
||||||
min = Math.min(g, b); // g < b ? g : b; ???
|
min = _Math.min(g, b); // g < b ? g : b; ???
|
||||||
}
|
}
|
||||||
chroma = r - min;
|
chroma = r - min;
|
||||||
s = r ? (chroma / r) : 0;
|
s = r ? (chroma / r) : 0;
|
||||||
return {
|
return {
|
||||||
h: s < 1e-15 ? ((_colors && _colors.hsl && _colors.hsl.h) || 0) :
|
h: s < 1e-15 ? ((_colors && _colors.hsl && _colors.hsl.h) || 0) :
|
||||||
chroma ? Math.abs(k + (g - b) / (6 * chroma)) : 0,
|
chroma ? _Math.abs(k + (g - b) / (6 * chroma)) : 0,
|
||||||
s: r ? (chroma / r) : ((_colors && _colors.hsv && _colors.hsv.s) || 0), // ??_colors.hsv.s || 0
|
s: r ? (chroma / r) : ((_colors && _colors.hsv && _colors.hsv.s) || 0), // ??_colors.hsv.s || 0
|
||||||
v: r
|
v: r
|
||||||
};
|
};
|
||||||
@ -307,7 +333,7 @@
|
|||||||
var h = hsv.h * 6,
|
var h = hsv.h * 6,
|
||||||
s = hsv.s,
|
s = hsv.s,
|
||||||
v = hsv.v,
|
v = hsv.v,
|
||||||
i = ~~h, // Math.floor(h) -> faster in most browsers
|
i = ~~h, // _Math.floor(h) -> faster in most browsers
|
||||||
f = h - i,
|
f = h - i,
|
||||||
p = v * (1 - s),
|
p = v * (1 - s),
|
||||||
q = v * (1 - f * s),
|
q = v * (1 - f * s),
|
||||||
@ -349,7 +375,7 @@
|
|||||||
v = l < 0.5 ? l * (1 + s) : (l + s) - (s * l),
|
v = l < 0.5 ? l * (1 + s) : (l + s) - (s * l),
|
||||||
m = l + l - v,
|
m = l + l - v,
|
||||||
sv = v ? ((v - m) / v) : 0,
|
sv = v ? ((v - m) / v) : 0,
|
||||||
sextant = ~~h, // Math.floor(h) -> faster in most browsers
|
sextant = ~~h, // _Math.floor(h) -> faster in most browsers
|
||||||
fract = h - sextant,
|
fract = h - sextant,
|
||||||
vsf = v * sv * fract,
|
vsf = v * sv * fract,
|
||||||
t = m + vsf,
|
t = m + vsf,
|
||||||
@ -381,9 +407,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getHueDelta(rgb1, rgb2, nominal) {
|
function getHueDelta(rgb1, rgb2, nominal) {
|
||||||
return (Math.max(rgb1.r - rgb2.r, rgb2.r - rgb1.r) +
|
return (_Math.max(rgb1.r - rgb2.r, rgb2.r - rgb1.r) +
|
||||||
Math.max(rgb1.g - rgb2.g, rgb2.g - rgb1.g) +
|
_Math.max(rgb1.g - rgb2.g, rgb2.g - rgb1.g) +
|
||||||
Math.max(rgb1.b - rgb2.b, rgb2.b - rgb1.b)) * (nominal ? 255 : 1) / 765;
|
_Math.max(rgb1.b - rgb2.b, rgb2.b - rgb1.b)) * (nominal ? 255 : 1) / 765;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLuminance(rgb, normalized) {
|
function getLuminance(rgb, normalized) {
|
||||||
@ -392,7 +418,7 @@
|
|||||||
luminance = _instance.options.luminance;
|
luminance = _instance.options.luminance;
|
||||||
|
|
||||||
for (var i = RGB.length; i--; ) {
|
for (var i = RGB.length; i--; ) {
|
||||||
RGB[i] = RGB[i] <= 0.03928 ? RGB[i] / 12.92 : Math.pow(((RGB[i] + 0.055) / 1.055), 2.4);
|
RGB[i] = RGB[i] <= 0.03928 ? RGB[i] / 12.92 : _Math.pow(((RGB[i] + 0.055) / 1.055), 2.4);
|
||||||
}
|
}
|
||||||
return ((luminance.r * RGB[0]) + (luminance.g * RGB[1]) + (luminance.b * RGB[2]));
|
return ((luminance.r * RGB[0]) + (luminance.g * RGB[1]) + (luminance.b * RGB[2]));
|
||||||
}
|
}
|
||||||
@ -418,11 +444,11 @@
|
|||||||
} else {
|
} else {
|
||||||
ratio = (lum2 + 0.05) / (lum1 + 0.05);
|
ratio = (lum2 + 0.05) / (lum1 + 0.05);
|
||||||
}
|
}
|
||||||
return Math.round(ratio * 100) / 100;
|
return _round(ratio * 100) / 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
function limitValue(value, min, max) {
|
function limitValue(value, min, max) {
|
||||||
// return Math.max(min, Math.min(max, value)); // faster??
|
// return _Math.max(min, _Math.min(max, value)); // faster??
|
||||||
return (value > max ? max : value < min ? min : value);
|
return (value > max ? max : value < min ? min : value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="../index.css">
|
<link rel="stylesheet" type="text/css" href="../index.css">
|
||||||
<link id="colorPickerMod" rel="stylesheet" type="text/css" href="mod.css">
|
<link id="colorPickerMod" rel="stylesheet" type="text/css" href="mod.css">
|
||||||
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
|
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
|
||||||
<script type="text/javascript" src="../jqColorPicker.min.js"></script>
|
<!-- <script type="text/javascript" src="../jqColorPicker.min.js"></script> -->
|
||||||
<!-- <script type="text/javascript" src="../colors.js"></script> -->
|
<script type="text/javascript" src="../colors.js"></script>
|
||||||
<!-- <script type="text/javascript" src="../jqColorPicker.js"></script> -->
|
<script type="text/javascript" src="../jqColorPicker.js"></script>
|
||||||
<script type="text/javascript" src="index.js"></script>
|
<script type="text/javascript" src="index.js"></script>
|
||||||
|
|
||||||
<title>tiny jQuery color picker demo</title>
|
<title>tiny jQuery color picker demo</title>
|
||||||
@ -25,9 +25,9 @@
|
|||||||
<a name="demo" id="demo" class="a-inline"></a>
|
<a name="demo" id="demo" class="a-inline"></a>
|
||||||
<h2>Skinned dev-tools like, with RGB sliders</h2>
|
<h2>Skinned dev-tools like, with RGB sliders</h2>
|
||||||
<div class="input-toggles">
|
<div class="input-toggles">
|
||||||
<input class="color no-alpha" value="#B6BD79" />
|
<input class="color" value="#B6BD79" />
|
||||||
<input class="color no-alpha" value="rgb(162, 63, 3)" />
|
<input class="color no-alpha" value="rgb(162, 63, 3)" />
|
||||||
<input class="color no-alpha" value="hsl(32, 95%, 23%)" />
|
<input class="color no-sliders" value="hsl(32, 95%, 23%)" />
|
||||||
</div>
|
</div>
|
||||||
<div class="div-toggles">
|
<div class="div-toggles">
|
||||||
<div class="trigger" value="#556B2F"><div><div></div></div></div>
|
<div class="trigger" value="#556B2F"><div><div></div></div></div>
|
||||||
|
@ -36,12 +36,14 @@ $(function(){
|
|||||||
'<div class="cp-rgb-b"><div class="cp-rgb-b-cursor"></div></div>' +
|
'<div class="cp-rgb-b"><div class="cp-rgb-b-cursor"></div></div>' +
|
||||||
'<div class="cp-patch"><div></div></div><div class="cp-disp"></div>');
|
'<div class="cp-patch"><div></div></div><div class="cp-disp"></div>');
|
||||||
|
|
||||||
this.cursorRStyle = $elm.find('.cp-rgb-r-cursor')[0].style; // caching for faster render renderCallback
|
this.$sliders = $elm.find('.cp-rgb-r, .cp-rgb-g, .cp-rgb-b');
|
||||||
this.cursorGStyle = $elm.find('.cp-rgb-g-cursor')[0].style;
|
this.cursorRStyle = this.$sliders.find('.cp-rgb-r-cursor')[0].style; // caching for faster render renderCallback
|
||||||
this.cursorBStyle = $elm.find('.cp-rgb-b-cursor')[0].style;
|
this.cursorGStyle = this.$sliders.find('.cp-rgb-g-cursor')[0].style;
|
||||||
|
this.cursorBStyle = this.$sliders.find('.cp-rgb-b-cursor')[0].style;
|
||||||
|
|
||||||
this.patchStyle = $('.cp-patch div')[0].style;
|
this.patchStyle = $('.cp-patch div')[0].style;
|
||||||
this.$display = $('.cp-disp');
|
this.$display = $('.cp-disp');
|
||||||
|
this.$alpha = $elm.find('.cp-alpha');
|
||||||
|
|
||||||
$elm.on('mousedown', '.cp-rgb-r, .cp-rgb-g, .cp-rgb-b', function(e) { // event delegation
|
$elm.on('mousedown', '.cp-rgb-r, .cp-rgb-g, .cp-rgb-b', function(e) { // event delegation
|
||||||
$currentSlider = $(this); // well ;o)
|
$currentSlider = $(this); // well ;o)
|
||||||
@ -73,6 +75,11 @@ $(function(){
|
|||||||
// $elm.closest('.trigger').removeClass('active');
|
// $elm.closest('.trigger').removeClass('active');
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
if (toggled === true) { // on show colorPicker
|
||||||
|
this.$alpha.toggle(!$elm.hasClass('no-alpha'));
|
||||||
|
this.$sliders.toggle(!$elm.hasClass('no-sliders'));
|
||||||
|
}
|
||||||
|
|
||||||
this.patchStyle.backgroundColor = $elm[0].style.backgroundColor; // set patch color...
|
this.patchStyle.backgroundColor = $elm[0].style.backgroundColor; // set patch color...
|
||||||
this.$display.text(this.color.options.colorNames[colors.HEX] || $elm.val()); // ...and text aside
|
this.$display.text(this.color.options.colorNames[colors.HEX] || $elm.val()); // ...and text aside
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
.cp-color-picker .cp-rgb-r,
|
.cp-color-picker .cp-rgb-r,
|
||||||
.cp-color-picker .cp-rgb-g,
|
.cp-color-picker .cp-rgb-g,
|
||||||
.cp-color-picker .cp-rgb-b {
|
.cp-color-picker .cp-rgb-b {
|
||||||
|
clear: both;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
width: 152px;
|
width: 152px;
|
||||||
margin: 12px 0 0;
|
margin: 12px 0 0;
|
||||||
|
28
index.html
28
index.html
@ -12,6 +12,13 @@
|
|||||||
<link rel="icon" type="image/x-icon" href="development/favicon.ico">
|
<link rel="icon" type="image/x-icon" href="development/favicon.ico">
|
||||||
<!-- <link rel="stylesheet" type="text/css" href="development/colorPicker.css"> -->
|
<!-- <link rel="stylesheet" type="text/css" href="development/colorPicker.css"> -->
|
||||||
<link rel="stylesheet" type="text/css" href="development/compatibility.css">
|
<link rel="stylesheet" type="text/css" href="development/compatibility.css">
|
||||||
|
|
||||||
|
<!-- <script type="text/javascript" src="jquery-1.11.2.js"></script> -->
|
||||||
|
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
|
||||||
|
<script type="text/javascript" src="colors.js"></script>
|
||||||
|
<script type="text/javascript" src="jqColorPicker.js"></script>
|
||||||
|
<!-- <script type="text/javascript" src="jqColorPicker.min.js"></script> -->
|
||||||
|
|
||||||
<title>tiny jQuery color picker</title>
|
<title>tiny jQuery color picker</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@ -48,7 +55,8 @@ On all elements with className 'color': <pre>$('.color').colorPicker();</pre>
|
|||||||
<div class="trigger" value="#556B2F"><div><div></div></div></div>
|
<div class="trigger" value="#556B2F"><div><div></div></div></div>
|
||||||
<div class="trigger" value="rgb(100, 86, 70)"><div><div></div></div></div>
|
<div class="trigger" value="rgb(100, 86, 70)"><div><div></div></div></div>
|
||||||
<div class="trigger" value="hsla(167, 29%, 68%, 0.8)"><div><div></div></div></div>
|
<div class="trigger" value="hsla(167, 29%, 68%, 0.8)"><div><div></div></div></div>
|
||||||
<img id="qr" style="float: right; display: block; display: none; margin-right: -200px;" src="./development/qr.png" alt="QR code for http://www.dematte.at/tinyColorPicker/?type=mobile#demo"></div>
|
<img id="qr" style="float: right; display: block; display: none; margin-right: -200px;" src="./development/qr.png" alt="QR code for http://www.dematte.at/tinyColorPicker/?type=mobile#demo">
|
||||||
|
</div>
|
||||||
<h2>Usage</h2>
|
<h2>Usage</h2>
|
||||||
<p>There is only one file you need to load... No images and no CSS required.</p>
|
<p>There is only one file you need to load... No images and no CSS required.</p>
|
||||||
<pre style="display: block; overflow: auto;">
|
<pre style="display: block; overflow: auto;">
|
||||||
@ -77,29 +85,21 @@ window.myColorPicker = $('input.color').colorPicker({
|
|||||||
'.cp-alpha-cursor {border-width:8px; margin-left:-8px;}',
|
'.cp-alpha-cursor {border-width:8px; margin-left:-8px;}',
|
||||||
|
|
||||||
renderCallback: function($elm, toggled) {
|
renderCallback: function($elm, toggled) {
|
||||||
var colors = this.color.colors,
|
var colors = this.color.colors;
|
||||||
rgb = colors.RND.rgb;
|
|
||||||
|
|
||||||
$('.cp-disp').css({
|
$('.cp-disp').css({
|
||||||
backgroundColor: '#' + colors.HEX,
|
backgroundColor: '#' + colors.HEX,
|
||||||
color: colors.RGBLuminance > 0.22 ? '#222' : '#ddd'
|
color: colors.RGBLuminance > 0.22 ? '#222' : '#ddd'
|
||||||
}).text('rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b +
|
}).text(this.color.toString($elm._colorMode));
|
||||||
', ' + (Math.round(colors.alpha * 100) / 100) + ')');
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</pre>
|
</pre>
|
||||||
<h2>API and usage</h2>
|
<h2>API and usage</h2>
|
||||||
<p>Will follow... See <a href="https://github.com/PitPik/tinyColorPicker">tinyColorPicker on GitHub</a> for now.</p>
|
<p>Will follow... See <a href="https://github.com/PitPik/tinyColorPicker">tinyColorPicker on GitHub</a> for now.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <script type="text/javascript" src="jquery-1.11.2.js"></script> -->
|
|
||||||
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
|
|
||||||
<script type="text/javascript" src="colors.js"></script>
|
|
||||||
<script type="text/javascript" src="jqColorPicker.js"></script>
|
|
||||||
<!-- <script type="text/javascript" src="jqColorPicker.min.js"></script> -->
|
|
||||||
<script type="text/javascript" src="index.js"></script>
|
|
||||||
<a class="a-inline" href="https://github.com/PitPik/tinyColorPicker"><img style="position: absolute; top: 0; right: 0; border: 0;" src="development/fmog.png" alt="Fork me on GitHub"></a>
|
<a class="a-inline" href="https://github.com/PitPik/tinyColorPicker"><img style="position: absolute; top: 0; right: 0; border: 0;" src="development/fmog.png" alt="Fork me on GitHub"></a>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="index.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
6
index.js
6
index.js
@ -43,14 +43,12 @@
|
|||||||
'.cp-alpha-cursor{border-width: 8px; margin-left:-8px;}',
|
'.cp-alpha-cursor{border-width: 8px; margin-left:-8px;}',
|
||||||
|
|
||||||
renderCallback: function($elm, toggled) {
|
renderCallback: function($elm, toggled) {
|
||||||
var colors = this.color.colors,
|
var colors = this.color.colors;
|
||||||
rgb = colors.RND.rgb;
|
|
||||||
|
|
||||||
$('.cp-disp').css({
|
$('.cp-disp').css({
|
||||||
backgroundColor: '#' + colors.HEX,
|
backgroundColor: '#' + colors.HEX,
|
||||||
color: colors.RGBLuminance > 0.22 ? '#222' : '#ddd'
|
color: colors.RGBLuminance > 0.22 ? '#222' : '#ddd'
|
||||||
}).text('rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b +
|
}).text(this.color.toString($elm._colorMode)); // $elm.val();
|
||||||
', ' + (Math.round(colors.alpha * 100) / 100) + ')');
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function build() {
|
function build() {
|
||||||
$('head').append('<style type="text/css">' +
|
$('head').append('<style type="text/css" id="tinyColorPickerStyles">' +
|
||||||
(_options.css || _css) + (_options.cssAddon || '') + '</style>');
|
(_options.css || _css) + (_options.cssAddon || '') + '</style>');
|
||||||
|
|
||||||
return _colorPicker.$UI = _$UI =
|
return _colorPicker.$UI = _$UI =
|
||||||
@ -200,22 +200,13 @@
|
|||||||
HSL = colors.RND.hsl,
|
HSL = colors.RND.hsl,
|
||||||
dark = '#222',
|
dark = '#222',
|
||||||
light = '#ddd',
|
light = '#ddd',
|
||||||
colorMode = _$trigger._colorMode,
|
colorText = _color.toString(_$trigger._colorMode),
|
||||||
isAlpha = colors.alpha !== 1,
|
|
||||||
alpha = _round(colors.alpha * 100) / 100,
|
|
||||||
RGBInnerText = RGB.r + ', ' + RGB.g + ', ' + RGB.b,
|
|
||||||
text = (colorMode === 'HEX' && !isAlpha ? '#' + colors.HEX :
|
|
||||||
colorMode === 'rgb' || (colorMode === 'HEX' && isAlpha) ?
|
|
||||||
(!isAlpha ? 'rgb(' + RGBInnerText + ')' :
|
|
||||||
'rgba(' + RGBInnerText + ', ' + alpha + ')') :
|
|
||||||
('hsl' + (isAlpha ? 'a(' : '(') + HSL.h + ', ' + HSL.s + '%, ' +
|
|
||||||
HSL.l + '%' + (isAlpha ? ', ' + alpha : '') + ')')),
|
|
||||||
HUEContrast = colors.HUELuminance > 0.22 ? dark : light,
|
HUEContrast = colors.HUELuminance > 0.22 ? dark : light,
|
||||||
alphaContrast = colors.rgbaMixBlack.luminance > 0.22 ? dark : light,
|
alphaContrast = colors.rgbaMixBlack.luminance > 0.22 ? dark : light,
|
||||||
h = (1 - colors.hsv.h) * _$xy_slider._height,
|
h = (1 - colors.hsv.h) * _$xy_slider._height,
|
||||||
s = colors.hsv.s * _$xy_slider._width,
|
s = colors.hsv.s * _$xy_slider._width,
|
||||||
v = (1 - colors.hsv.v) * _$xy_slider._height,
|
v = (1 - colors.hsv.v) * _$xy_slider._height,
|
||||||
a = alpha * _$alpha._width,
|
a = colors.alpha * _$alpha._width,
|
||||||
translate3d = _GPU ? 'translate3d' : '',
|
translate3d = _GPU ? 'translate3d' : '',
|
||||||
triggerValue = _$trigger[0].value,
|
triggerValue = _$trigger[0].value,
|
||||||
hasNoValue = _$trigger[0].hasAttribute('value') && // question this
|
hasNoValue = _$trigger[0].hasAttribute('value') && // question this
|
||||||
@ -235,18 +226,18 @@
|
|||||||
top: !_GPU ? h : '',
|
top: !_GPU ? h : '',
|
||||||
borderColor : 'transparent ' + HUEContrast
|
borderColor : 'transparent ' + HUEContrast
|
||||||
};
|
};
|
||||||
_$alpha._css = {backgroundColor: 'rgb(' + RGBInnerText + ')'};
|
_$alpha._css = {backgroundColor: '#' + colors.HEX};
|
||||||
_$alpha_cursor._css = {
|
_$alpha_cursor._css = {
|
||||||
transform: translate3d + '(' + a + 'px, 0, 0)',
|
transform: translate3d + '(' + a + 'px, 0, 0)',
|
||||||
left: !_GPU ? a : '',
|
left: !_GPU ? a : '',
|
||||||
borderColor : alphaContrast + ' transparent'
|
borderColor : alphaContrast + ' transparent'
|
||||||
};
|
};
|
||||||
_$trigger._css = {
|
_$trigger._css = {
|
||||||
backgroundColor : hasNoValue ? '' : text,
|
backgroundColor : hasNoValue ? '' : colorText,
|
||||||
color: hasNoValue ? '' :
|
color: hasNoValue ? '' :
|
||||||
colors.rgbaMixBGMixCustom.luminance > 0.22 ? dark : light
|
colors.rgbaMixBGMixCustom.luminance > 0.22 ? dark : light
|
||||||
};
|
};
|
||||||
_$trigger.text = hasNoValue ? '' : triggerValue !== text ? text : '';
|
_$trigger.text = hasNoValue ? '' : triggerValue !== colorText ? colorText : '';
|
||||||
|
|
||||||
toggled !== undefined ? render(toggled) : _animate(render);
|
toggled !== undefined ? render(toggled) : _animate(render);
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
4
jqColorPicker.min.js
vendored
4
jqColorPicker.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tinyColorPicker",
|
"name": "tinyColorPicker",
|
||||||
"version": "1.0.2",
|
"version": "1.0.4",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "http://github.com/PitPik/tinyColorPicker.git"
|
"url": "http://github.com/PitPik/tinyColorPicker.git"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user