ehime

Untitled

Oct 31st, 2013
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. <html>
  2. <head>
  3. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
  4. <script>
  5. (function(a){a["toRGB"]=function(a){var b=parseInt(a,16);return[b>>16,b>>8&255,b&255]};a["toHex"]=function(a,b,c){return(c|b<<8|a<<16|1<<24).toString(16).slice(1)}})(this);
  6.  
  7. var color = $('#body').attr('data-color');
  8. var sigma = parseInt($('#body').attr('data-sigma'),10);
  9.  
  10. var rgb = this.toRGB(color);
  11.  
  12. var max = 0;
  13. var min = 255;
  14. for(var i in rgb)
  15. {
  16. if(rgb[i] >= max)
  17. {
  18. max = rgb[i];
  19. }
  20.  
  21. if(rgb[i] <= min)
  22. {
  23. min = rgb[i];
  24. }
  25. }
  26.  
  27. var ratio = [
  28. rgb[0]/max,
  29. rgb[1]/max,
  30. rgb[2]/max
  31. ];
  32.  
  33. var maxColor = [
  34. Math.floor(255*ratio[0]),
  35. Math.floor(255*ratio[1]),
  36. Math.floor(255*ratio[2])
  37. ];
  38.  
  39. var minColor = [
  40. Math.floor((255-min)*ratio[0]),
  41. Math.floor((255-min)*ratio[1]),
  42. Math.floor((255-min)*ratio[2])
  43. ];
  44.  
  45. var minColor = [0,0,0];
  46.  
  47. var maxIncrements = [
  48. (maxColor[0]-minColor[0])/(sigma),
  49. (maxColor[1]-minColor[1])/(sigma),
  50. (maxColor[2]-minColor[2])/(sigma)
  51. ]
  52.  
  53. var minIncrements = [
  54. (255-maxColor[0])/(sigma),
  55. (255-maxColor[1])/(sigma),
  56. (255-maxColor[2])/(sigma)
  57. ]
  58.  
  59. for(var i = 0; i < sigma; i++)
  60. {
  61. var newColor = [
  62. Math.floor(minColor[0]+maxIncrements[0]*i),
  63. Math.floor(minColor[1]+maxIncrements[1]*i),
  64. Math.floor(minColor[2]+maxIncrements[2]*i)
  65. ];
  66.  
  67. var hex = (i+1==sigma)?color:this.toHex(newColor[0], newColor[1], newColor[2]);
  68. console.log(hex);
  69.  
  70. $('#body').append('<div style="width: 100px; height: 50px; background-color: #'+hex+'; border:1px solid #ccc"></div>');
  71. }
  72.  
  73. for(var i = 1; i < sigma+1; i++)
  74. {
  75. var newColor = [
  76. Math.min(255,Math.floor(maxColor[0]+minIncrements[0]*i)),
  77. Math.min(255,Math.floor(maxColor[1]+minIncrements[1]*i)),
  78. Math.min(255,Math.floor(maxColor[2]+minIncrements[2]*i))
  79. ];
  80.  
  81. var hex = this.toHex(newColor[0], newColor[1], newColor[2]);
  82.  
  83. console.log(hex);
  84.  
  85. $('#body').append('<div style="width: 100px; height: 50px; background-color: #'+hex+'; border: 1px solid #ccc"></div>');
  86. }
  87.  
  88. </script>
  89. </head>
  90. <body id="body" data-color="c0ffee" data-sigma="5"></body>
  91. </html>
Advertisement
Add Comment
Please, Sign In to add comment