Guest User

Untitled

a guest
May 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.92 KB | None | 0 0
  1. border: 1px solid rgba(255,255,255,0.7)
  2.  
  3. $('body').append('<div id="rgbatest" style="color:rgba(0,0,0,0);position:absolute;visibility:hidden">&nbsp;</div>"');
  4. if(!$('#rgbatest').css('color').match(/^rgba/)){
  5. $('body').addClass('no-rgba');
  6. }
  7. $('#rgbatest').remove();
  8.  
  9. #thisDiv{border: 1px solid rgba(255,255,255,0.7)}
  10. .no-rgba #thisDiv{border: 1px solid #FFF}
  11.  
  12. function lighten(color, factor) {
  13. factor = factor || 0.4;
  14. var lighter = '#';
  15. for(var i = 1; i < 6; i += 2) {
  16. var part = parseInt(color.substr(i, 2), 16);
  17. part += Math.round((255 - part) * 0.4);
  18. lighter += (part < 16 ? '0' : '') + part.toString(16);
  19. }
  20. return lighter;
  21. }
  22. lighten('#ececec'); // returns '#f4f4f4'
  23.  
  24. $hexcol = col2string( RGBinterpolate("#ececec", "#ffffff", 0.5) ); // "#f4f4f4"
  25.  
  26. // Input:
  27. // $start as RGB color string,
  28. // $end as RGB color string,
  29. // $dist as float in [0.0 .. 1.0] being % distance between start and end colors
  30. // Output:
  31. // array(int, int, int) being the resulting color in RGB)
  32. function RGBinterpolate( $start, $end, $dist ) {
  33. $hsl_start = rgb2hsl( getCol($start) );
  34. $hsl_end = rgb2hsl( getCol($end) );
  35.  
  36. // choose the shorter arc of the hue wheel!
  37. if ($hsl_start[0] > $hsl_end[0]) {
  38. if ($hsl_start[0] > $hsl_end[0] + 0.5)
  39. $hsl_start[0] -= 1.0;
  40. }
  41. else {
  42. if ($hsl_end[0] > $hsl_start[0] + 0.5)
  43. $hsl_end[0] -= 1.0;
  44. }
  45.  
  46. // do linear interpolation in hsl color space
  47. $hs = interp( $hsl_start[0], $hsl_end[0], $dist );
  48. $ss = interp( $hsl_start[1], $hsl_end[1], $dist );
  49. $ls = interp( $hsl_start[2], $hsl_end[2], $dist );
  50.  
  51. return hsl2rgb( array( $hs, $ss, $ls ) );
  52. }
  53.  
  54.  
  55. // Input: start-value, end-value, % distance as float in [0.0 .. 1.0]
  56. // Output: result of interpolation as float
  57. function interp($start, $end, $dist) {
  58. return $start + ($end - $start)*$dist;
  59. }
  60.  
  61.  
  62. // Input: string in one of the following formats:
  63. // #XXXXXX (standard hex code as used in CSS)
  64. // 0xXXXXXX (same thing written as C longint)
  65. // #XXX (equivalent to each-digit-doubled, ie #abc is #aabbcc)
  66. // 000, 000, 000 (decimal triad, each value in 0..255)
  67. // colorname (Netscape defined color names)
  68. // Output: array(int, int, int) for legal values, else default value
  69. function getCol($str, $default=array(0,0,0)) {
  70. global $namedcolors;
  71.  
  72. // convert named color to #xxxxxx code
  73. if( isset($namedcolors[$str]) )
  74. $str = $namedcolors[$str]; // turn named color into a hex value
  75.  
  76. $str = trim($str); // remove leading and trailing whitespace
  77. $hex = "[0-9a-z]";
  78.  
  79. // attempt to match #XXXXXX
  80. $pat = "/(#)($hex{2})($hex{2})($hex{2})/i";
  81. if ((preg_match($pat, $str, $arr)) == 1) {
  82. $r = hexdec($arr[2]);
  83. $g = hexdec($arr[3]);
  84. $b = hexdec($arr[4]);
  85.  
  86. return array($r, $g, $b);
  87. }
  88.  
  89. // attempt to match 0xXXXXXX
  90. $pat = "/(0x)($hex{2})($hex{2})($hex{2})/i";
  91. if ((preg_match($pat, $str, $arr)) == 1) {
  92. $r = hexdec($arr[2]);
  93. $g = hexdec($arr[3]);
  94. $b = hexdec($arr[4]);
  95.  
  96. return array($r, $g, $b);
  97. }
  98.  
  99. // attempt to match #XXX
  100. $pat = "/(#)($hex)($hex)($hex)/i";
  101. if ((preg_match($pat, $str, $arr)) == 1) {
  102. $r = hexdec($arr[2]) * 17;
  103. $g = hexdec($arr[3]) * 17;
  104. $b = hexdec($arr[4]) * 17;
  105.  
  106. return array($r, $g, $b);
  107. }
  108.  
  109. // attempt to match int, int, int
  110. $pat = "/(d{1,3})\s*,\s*(d{1,3})\s*,\s*(d{1,3})/i";
  111. if ((preg_match($pat, $str, $arr)) == 1) {
  112. $r = 0 + $arr[2]; // implicit cast to int - make explicit?
  113. $g = 0 + $arr[3];
  114. $b = 0 + $arr[4];
  115.  
  116. return array($r, $g, $b);
  117. }
  118.  
  119. // if none of the above worked, return default value
  120. return $default;
  121. }
  122.  
  123.  
  124. // Input: array(int,int,int) being RGB color in { [0..255], [0..255], [0..255] }
  125. // Output array(float,float,float) being HSL color in { [0.0 .. 1.0), [0.0 .. 1.0), [0.0 .. 1.0) }
  126. function rgb2hsl($rgbtrio) {
  127. $r = $rgbtrio[0] / 256.0; // Normalize {r,g,b} to [0.0 .. 1.0)
  128. $g = $rgbtrio[1] / 256.0;
  129. $b = $rgbtrio[2] / 256.0;
  130.  
  131. $h = 0.0;
  132. $s = 0.0;
  133. $L = 0.0;
  134.  
  135. $min = min($r, $g, $b);
  136. $max = max($r, $g, $b);
  137. $delta = $max - $min;
  138. $L = 0.5 * ( $max + $min );
  139.  
  140. if ( $delta < 0.001 ) // This is a gray, no chroma...
  141. {
  142. $h = 0.0; // ergo, hue and saturation are meaningless
  143. $s = 0.0;
  144. }
  145. else // Chromatic data...
  146. {
  147. if ( $L < 0.5 ) $s = $max / ( $max + $min );
  148. else $s = $max / ( 2 - $max - $min );
  149.  
  150. $dr = ( (($max - $r) / 6.0) + ($max / 2.0) ) / $max;
  151. $dg = ( (($max - $g) / 6.0) + ($max / 2.0) ) / $max;
  152. $db = ( (($max - $b) / 6.0) + ($max / 2.0) ) / $max;
  153.  
  154. if ($r == $max) $h = $db - $dg;
  155. elseif ($g == $max) $h = (0.3333) + $dr - $db;
  156. elseif ($b == $max) $h = (0.6666) + $dg - $dr;
  157.  
  158. if ( $h < 0.0 ) $h += 1.0;
  159. if ( $h > 1.0 ) $h -= 1.0;
  160. }
  161.  
  162. return array($h, $s, $L);
  163. }
  164.  
  165.  
  166. function Hue_2_RGB( $v1, $v2, $vH ) {
  167. $v1 = 0.0+$v1;
  168. $v2 = 0.0+$v2;
  169. $vH = 0.0+$vH;
  170.  
  171. if ( $vH < 0.0 ) $vH += 1.0;
  172. elseif ( $vH >= 1.0 ) $vH -= 1.0;
  173. // 0.0 <= vH < 1.0
  174.  
  175. if ( $vH < 0.1667 ) return ( $v1 + 6.0*$vH*($v2 - $v1) );
  176. elseif ( $vH < 0.5 ) return ( $v2 );
  177. elseif ( $vH < 0.6667 ) return ( $v1 + (4.0-(6.0*$vH ))*($v2 - $v1) );
  178. else return ( $v1 );
  179. }
  180.  
  181. // Input: array(float,float,float) being HSL color in { [0.0 .. 1.0), [0.0 .. 1.0), [0.0 .. 1.0) }
  182. // Output: array(int,int,int) being RGB color in { [0..255], [0..255], [0..255] }
  183. function hsl2rgb($hsltrio) {
  184. $h = $hsltrio[0];
  185. $s = $hsltrio[1];
  186. $L = $hsltrio[2];
  187.  
  188. if ( $s < 0.001 ) //HSL from 0 to 1
  189. {
  190. $r = $L;
  191. $g = $L;
  192. $b = $L;
  193. }
  194. else
  195. {
  196. if ( $L < 0.5 ) $j = $L * ( 1.0 + $s );
  197. else $j = ($L + $s) - ($s * $L);
  198.  
  199. $i = (2.0 * $L) - $j;
  200.  
  201. $r = Hue_2_RGB( $i, $j, $h + 0.3333 );
  202. $g = Hue_2_RGB( $i, $j, $h );
  203. $b = Hue_2_RGB( $i, $j, $h - 0.3333 );
  204. }
  205.  
  206. return array( floor(256.0 * $r), floor(256.0 * $g), floor(256.0 * $b) );
  207. }
  208.  
  209.  
  210. function col2string($rgbtrio) {
  211. global $colornames;
  212.  
  213. $r = floor( $rgbtrio[0] );
  214. $g = floor( $rgbtrio[1] );
  215. $b = floor( $rgbtrio[2] );
  216.  
  217. $str = sprintf("#%02x%02x%02x", $r, $g, $b);
  218.  
  219. if( isset($colornames[$str]) )
  220. return $colornames[$str];
  221. else
  222. return $str;
  223. }
  224.  
  225.  
  226. // All Netscape named colors
  227. $namedcolors = array(
  228. "aliceblue" => "#f0f8ff",
  229. "antiquewhite" => "#faebd7",
  230. "aqua" => "#00ffff",
  231. "aquamarine" => "#7fffd4",
  232. "azure" => "#f0ffff",
  233. "beige" => "#f5f5dc",
  234. "bisque" => "#ffe4c4",
  235. "black" => "#000000",
  236. "blanchedalmond" => "#ffebcd",
  237. "blue" => "#0000ff",
  238. "blueviolet" => "#8a2be2",
  239. "brown" => "#a52a2a",
  240. "burlywood" => "#deb887",
  241. "cadetblue" => "#5f9ea0",
  242. "chartreuse" => "#7fff00",
  243. "chocolate" => "#d2691e",
  244. "coral" => "#ff7f50",
  245. "cornflowerblue" => "#6495ed",
  246. "cornsilk" => "#fff8dc",
  247. "crimson" => "#dc143c",
  248. "cyan" => "#00ffff",
  249. "darkblue" => "#00008b",
  250. "darkcyan" => "#008b8b",
  251. "darkgoldenrod" => "#b8860b",
  252. "darkgray" => "#a9a9a9",
  253. "darkgreen" => "#006400",
  254. "darkgrey" => "#a9a9a9",
  255. "darkkhaki" => "#bdb76b",
  256. "darkmagenta" => "#8b008b",
  257. "darkolivegreen" => "#556b2f",
  258. "darkorange" => "#ff8c00",
  259. "darkorchid" => "#9932cc",
  260. "darkred" => "#8b0000",
  261. "darksalmon" => "#e9967a",
  262. "darkseagreen" => "#8fbc8f",
  263. "darkslateblue" => "#483d8b",
  264. "darkslategray" => "#2f4f4f",
  265. "darkslategrey" => "#2f4f4f",
  266. "darkturquoise" => "#00ced1",
  267. "darkviolet" => "#9400d3",
  268. "deeppink" => "#ff1493",
  269. "deepskyblue" => "#00bfff",
  270. "dimgray" => "#696969",
  271. "dimgrey" => "#696969",
  272. "dodgerblue" => "#1e90ff",
  273. "firebrick" => "#b22222",
  274. "floralwhite" => "#fffaf0",
  275. "forestgreen" => "#228b22",
  276. "fuchsia" => "#ff00ff",
  277. "gainsboro" => "#dcdcdc",
  278. "ghostwhite" => "#f8f8ff",
  279. "gold" => "#ffd700",
  280. "goldenrod" => "#daa520",
  281. "gray" => "#808080",
  282. "green" => "#008000",
  283. "greenyellow" => "#adff2f",
  284. "grey" => "#808080",
  285. "honeydew" => "#f0fff0",
  286. "hotpink" => "#ff69b4",
  287. "indianred" => "#cd5c5c",
  288. "indigo" => "#4b0082",
  289. "ivory" => "#fffff0",
  290. "khaki" => "#f0e68c",
  291. "lavender" => "#e6e6fa",
  292. "lavenderblush" => "#fff0f5",
  293. "lawngreen" => "#7cfc00",
  294. "lemonchiffon" => "#fffacd",
  295. "lightblue" => "#add8e6",
  296. "lightcoral" => "#f08080",
  297. "lightcyan" => "#e0ffff",
  298. "lightgoldenrodyellow" => "#fafad2",
  299. "lightgray" => "#d3d3d3",
  300. "lightgreen" => "#90ee90",
  301. "lightgrey" => "#d3d3d3",
  302. "lightpink" => "#ffb6c1",
  303. "lightsalmon" => "#ffa07a",
  304. "lightseagreen" => "#20b2aa",
  305. "lightskyblue" => "#87cefa",
  306. "lightslategray" => "#778899",
  307. "lightslategrey" => "#778899",
  308. "lightsteelblue" => "#b0c4de",
  309. "lightyellow" => "#ffffe0",
  310. "lime" => "#00ff00",
  311. "limegreen" => "#32cd32",
  312. "linen" => "#faf0e6",
  313. "magenta" => "#ff00ff",
  314. "maroon" => "#800000",
  315. "mediumaquamarine" => "#66cdaa",
  316. "mediumblue" => "#0000cd",
  317. "mediumorchid" => "#ba55d3",
  318. "mediumpurple" => "#9370db",
  319. "mediumseagreen" => "#3cb371",
  320. "mediumslateblue" => "#7b68ee",
  321. "mediumspringgreen" => "#00fa9a",
  322. "mediumturquoise" => "#48d1cc",
  323. "mediumvioletred" => "#c71585",
  324. "midnightblue" => "#191970",
  325. "mintcream" => "#f5fffa",
  326. "mistyrose" => "#ffe4e1",
  327. "moccasin" => "#ffe4b5",
  328. "navajowhite" => "#ffdead",
  329. "navy" => "#000080",
  330. "oldlace" => "#fdf5e6",
  331. "olive" => "#808000",
  332. "olivedrab" => "#6b8e23",
  333. "orange" => "#ffa500",
  334. "orangered" => "#ff4500",
  335. "orchid" => "#da70d6",
  336. "palegoldenrod" => "#eee8aa",
  337. "palegreen" => "#98fb98",
  338. "paleturquoise" => "#afeeee",
  339. "palevioletred" => "#db7093",
  340. "papayawhip" => "#ffefd5",
  341. "peachpuff" => "#ffdab9",
  342. "peru" => "#cd853f",
  343. "pink" => "#ffc0cb",
  344. "plum" => "#dda0dd",
  345. "powderblue" => "#b0e0e6",
  346. "purple" => "#800080",
  347. "red" => "#ff0000",
  348. "rosybrown" => "#bc8f8f",
  349. "royalblue" => "#4169e1",
  350. "saddlebrown" => "#8b4513",
  351. "salmon" => "#fa8072",
  352. "sandybrown" => "#f4a460",
  353. "seagreen" => "#2e8b57",
  354. "seashell" => "#fff5ee",
  355. "sienna" => "#a0522d",
  356. "silver" => "#c0c0c0",
  357. "skyblue" => "#87ceeb",
  358. "slateblue" => "#6a5acd",
  359. "slategray" => "#708090",
  360. "slategrey" => "#708090",
  361. "snow" => "#fffafa",
  362. "springgreen" => "#00ff7f",
  363. "steelblue" => "#4682b4",
  364. "tan" => "#d2b48c",
  365. "teal" => "#008080",
  366. "thistle" => "#d8bfd8",
  367. "tomato" => "#ff6347",
  368. "turquoise" => "#40e0d0",
  369. "violet" => "#ee82ee",
  370. "wheat" => "#f5deb3",
  371. "white" => "#ffffff",
  372. "whitesmoke" => "#f5f5f5",
  373. "yellow" => "#ffff00",
  374. "yellowgreen" => "#9acd32"
  375. );
  376. $colornames = array_flip($namedcolors);
  377.  
  378. var colorString=$(selector).css("background-color");
  379. var colorInt=parseInt(colorString.replace('#',''),16);
  380. colorInt+=parseInt("080808",16);
  381. var newColor = "#" + colorInt.toString(16);
  382.  
  383. $(selector).css("border-color", newColor);
  384.  
  385. $(selector).css('border-color', '#f4f4f4')
  386.  
  387. $(".picker").ColorPicker({
  388. onSubmit: function(hsb, hex, rgb, el){
  389. $(el).css({
  390. 'background-color': '#' + hex
  391. });
  392. $(el).ColorPickerHide();
  393. }
  394. });
Add Comment
Please, Sign In to add comment